28.实现strStr()
题目链接:力扣
思路:思路就是没有思路
收获:再次复习了KMP算法,了解了next数组的求法,如下所示:
void getNext (int* next, const string& s){
next[0] = 0;
int j = 0;
for(int i = 1;i < s.size(); i++){
while(j > 0 && s[i] != s[j]) {
j = next[j - 1];
}
if(s[i] == s[j]) {
j++;
}
next[i] = j;
}
}
在对比母串和子串时,i相当于母串,j相当于子串,先求出子串的next数组,随后在母串中查找时方式与求next数组几乎一致。
459.重复的子字符串
题目链接:力扣
思路:思路就是没有思路
收获:首先还是求得next,中心思想是这一行代码:
if (next[len - 1] != 0 && len % (len - (next[len - 1] )) == 0) {
return true;
这个图还是蛮清晰的: