zoukankan      html  css  js  c++  java
  • repeated-substring-pattern

    https://leetcode.com/problems/repeated-substring-pattern/

    下面这个方法,开始我觉得挺好。可惜还是超时了。后来我就加了一个剪枝策略,只有长度能够整除总长度的子串,才需要进行比较。

    package com.company;
    
    
    import java.util.*;
    
    class Solution {
        public boolean repeatedSubstringPattern(String str) {
    
            for (int i=1; i<=str.length()/2; i++) {
                if (str.length() % i != 0) {
                    continue;
                }
                StringBuilder sb = new StringBuilder();
                sb.append(str.substring(i));
                sb.append(str.substring(0, i));
                if (str.equals(sb.toString())) {
                    return true;
                }
            }
            return false;
        }
    }
    
    public class Main {
    
        public static void main(String[] args) throws InterruptedException {
    
            System.out.println("Hello!");
            Solution solution = new Solution();
    
            // Your Codec object will be instantiated and called as such:
            String str = "abcabcabcc";
            boolean ret = solution.repeatedSubstringPattern(str);
            System.out.printf("ret:%b
    ", ret);
    
            System.out.println();
    
        }
    
    }

    下面是开始超时的方法,少了一个剪枝条件。

    package com.company;
    
    
    import java.util.*;
    
    class Solution {
        public boolean repeatedSubstringPattern(String str) {
    
            for (int i=1; i<=str.length()/2; i++) {
                StringBuilder sb = new StringBuilder();
                sb.append(str.substring(i));
                sb.append(str.substring(0, i));
                if (str.equals(sb.toString())) {
                    return true;
                }
            }
            return false;
        }
    }
    
    public class Main {
    
        public static void main(String[] args) throws InterruptedException {
    
            System.out.println("Hello!");
            Solution solution = new Solution();
    
            // Your Codec object will be instantiated and called as such:
            String str = "abcabcabcc";
            boolean ret = solution.repeatedSubstringPattern(str);
            System.out.printf("ret:%b
    ", ret);
    
            System.out.println();
    
        }
    
    }
  • 相关阅读:
    sqlhelper使用指南
    大三学长带我学习JAVA。作业1. 第1讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行 大三学长带我学习JAVA。作业1.
    pku1201 Intervals
    hdu 1364 king
    pku 3268 Silver Cow Party
    pku 3169 Layout
    hdu 2680 Choose the best route
    hdu 2983
    pku 1716 Integer Intervals
    pku 2387 Til the Cows Come Home
  • 原文地址:https://www.cnblogs.com/charlesblc/p/6075958.html
Copyright © 2011-2022 走看看