今天就一题 459. 重复的子字符串
给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。
ψ(`∇´)ψ 我的思路
- 暴力循环:一个循环遍历出所有的字串,另一个循环判断输入的字符串是否可以由该子串重复组成
package string;
public class RepeatedSubstringPattern {
public static boolean repeatedSubstringPattern(String s) {
if(s.length()<2){return false;}
boolean flag = true;
int count = 0;
for (int i = 1; i <= s.length()/2; i++) {
// 遍历出所有可能的子串
if(s.length()%i==0){
int j = 0;
while (j<s.length()){
if(!s.substring(0,i).equals(s.substring(j,j+i))){
count++;
if(count==s.length()/2){return false;}
break;
}
if(j+i==s.length()){return true;}
j+=i;
}
} else {
flag=false;
}
}
return flag;
}
public static void main(String[] args) {
System.out.println(repeatedSubstringPattern("abcabc"));
}
}
时间复杂度O(n^2)