LeetCode459.重复的子字符串
题目来源:
https://leetcode-cn.com/problems/repeated-substring-pattern/
题目描述:
解题思路:
由题意可知,该子串长度的范围可以是i=1--->s.length()/2,因此我们可以从长度为s.length开始寻找该子串,每遍历到一个长度的子串,就要将这个子串和原字符串中每个长度为i的子串进行比较,一旦有不相等的就跳到下一个长度的子串。
代码如下:
class Solution {
public boolean repeatedSubstringPattern(String s) {
if (s == null || s.length() < 2)
return false;
int n = s.length();
for (int i = n / 2; i >= 1; i--) {
if (n % i == 0) {
boolean flag = true;
for (int j = n / i; j > 0; j--) {
if (!s.substring(0, i).equals(s.substring(i * (j - 1), i * j))) {
flag = false;
break;
}
}
if (flag)
return true;
}
}
return false;
}
}