bool repeatedSubstringPattern(char * s){
int length=strlen(s);
int next[length];
int i;
int j=0;
next[0]=0;
for(i=1;i<length;i++){//生成next数组,这部分不好解释,建议看 代码随想录 的视频
while(j>0&&s[i]!=s[j]){
j=next[j-1];
}
if(s[j]==s[i])
j++;
next[i]=j;
}
if(next[strlen(s)-1]!=0&&length%(length-next[length-1])==0)
return true;//最后一个字母存在最长前后缀且最长前后缀是length的倍数
else
return false;
}
Leetcode第459题重复的字符串数组||C语言
最新推荐文章于 2024-06-15 09:23:13 发布