是不是这样:每次从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"); } } }