459.重复的字符串
原题:
给定一个非空的字符串?s
?,检查是否可以通过由它的一个子串重复多次构成。
解题思路:
最简单的思路就是枚举,设定一个变量i,由于一个重复的字符串肯定是由一个子字符串复制一遍而来,因此我们只需要遍历一般就行了,然后当我们发现i是长度Len的因数时,我们就可以去判断这个字符串是否是重复的字符串,而比较时我们需要另一个变量k以i这个位置为基准去比较其他位置的字符串是否与i所在的位置往后的字符串相同,就可以比较出是否是重复的字符串,这里也可以采用kmp算法,但作者水平不够,看不懂。
都看到这里,觉得有用就点个赞吧,可以的话,点个关注吧
源代码:
bool repeatedSubstringPattern(char* s) {
int len=strlen(s);
bool judge;
for(int i=1;i<=len/2;i++)
{
if(len%i==0)
{
judge=true;
for(int j=i;j<len;j++)
{
if(s[j]!=s[j-i])
{
judge=false;
break;
}
}
}
if(judge==true)
{
return true;
}
}
return false;
}