# 重复的字符串
判断一个字符是否有重复的字串构成。
# 思路 : 暴力
假设字符S由n个s长度l构成,则必然有 S[i]=S[i+l-1]
public static boolean repeatedSubstringPattern(String s) {
int length = s.length();
for (int i = 1; i * 2 <= length; i++) {
if (length % i == 0) {
boolean m = true;
// 子串长度
for (int j = i; j < length; j++) {
if (s.charAt(j) != s.charAt(j - i)) {
m = false;
break;
}
}
if (m) {
return true;
}
}
}
return false;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 思路:字符串匹配
假设字符串S 由n个s组成, 则有S=ns S+S=2ns ,则在 2ns[1,2n-1] 必然有一个S
public static boolean repeatedSubstringPattern1(String s) {
String s2 = s + s;
return s2.indexOf(s, 1) != s.length();
}
1
2
3
4
2
3
4