看了几天的kmp算法终于可以自己写出来了。
class Solution {
public:
bool repeatedSubstringPattern(string s) {
int n = s.size();
vector<int> next(n,0);
int j = 0;
for(int i = 1;i < n;i++)
{
while(j > 0 && s[j] != s[i])
j = next[j-1];
if(s[j] == s[i])
{
next[i] = ++j;
}
}
return next[n-1] && (next[n-1] % (n - next[n-1]) == 0);
}
};