是不是这样:每次从S取M*L长度子串,再拆分M段L长度子串,比对M段子串相同位置的字符是否相同,没有相同时为所求。
子串截取和分段都易明,主要是字符比对,就看能否做到比对次数更少。
子串截取和分段都易明,主要是字符比对,就看能否做到比对次数更少。
[此贴子已经被作者于2016-12-18 10:16编辑过]
程序代码:#include <stdio.h>
void main()
{
char a,s[100];
int i,j,k,m,l;
printf("请输入字符串S:");
gets(s);
printf("请输入M和L:");
scanf("%d%d",&m,&l);
for(i=0;s[i+m*l];i++)
{
for(j=0;j<l;j++)
{
a=s[i+j];
for(k=1;k<m;k++)if(a==s[i+j+k*l])break;;
if(k<m)break;
}
if(j==l)
{
printf("满足条件的字符串:");
for(k=0;k<m*l;k++)printf("%c",s[i+k]);
printf("\n");
}
}
}