题目大意:
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
代码:
class Solution {
public boolean repeat(String s,String ss) {//判断s是否为ss重复构成
int len = ss.length();
int group = s.length() / ss.length();
for(int i = 0; i < group; i++) {
String tmp = s.substring(i * len,(i + 1) * len);
if(!ss.equals(tmp))return false;
}
return true;
}
public boolean repeatedSubstringPattern(String s) {
int length = s.length();
char last = s.charAt(s.length() - 1);
for(int i = 0; i < s.length() / 2; i++) {
if(s.charAt(i) == last && length % (i + 1) == 0) {
String ss = s.substring(0,i+1);
boolean ans = repeat(s,ss);
if(ans) return true;
}
}
return false;
}
}