是不是这样:每次从S取M*L长度子串,再拆分M段L长度子串,比对M段子串相同位置的字符是否相同,没有相同时为所求。
子串截取和分段都易明,主要是字符比对,就看能否做到比对次数更少。
子串截取和分段都易明,主要是字符比对,就看能否做到比对次数更少。
2016-12-18 07:30
[此贴子已经被作者于2016-12-18 10:16编辑过]
2016-12-18 09:48
2016-12-18 11:34
2016-12-18 11:40
2016-12-18 11:47
程序代码:#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");
}
}
}
2016-12-18 12:54
2016-12-18 14:09
2016-12-18 14:11
2016-12-18 15:31
,还要请众神鼎力相助才行
,我弄一个完整版的代码~也许要我四五个小时甚至更长的时间,关于回收字符串那题,我昨晚深夜做的,做得比较草率,同样排序那题也是,涉及到二级甚至是三级排序,在一级排序的基础上还要再摆弄一下才行~

2016-12-18 15:55