c语言就是如何输出唯一的子串。针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的朋友找到更简单易行的方法。
00-1010,给一个字符串,找到所有长度为m的非重复子字符串,比如对于字符串‘aa’,‘ab’,如果我们找到一个长度为2的子字符串,那么依次是‘aa’,‘aa’和‘ab’,那么不重复的子字符串就是‘aa’和‘ab’
00-1010的第一行是整数k,表示样本数。每个样本的第一行是整数m,表示要查找的子串的长度。第二行是字符串,由长度不超过100的所有小写英文字母组成。
00-1010以字典顺序输出所有不重复的子字符串,每个样本最终输出一个空行。
题目描述
2
2
aaab
三
aaab
输入
aa
腹肌
美国汽车协会
这个问题可以定义一个二维数组存储一个字符串的所有子串,然后排序,最后一个一个输出,遇到同一个只会输出一个。
输出
# includes dio . h
#includestring.h
intmain()
{
intk,I,j,len,n,l,m;
charstr[105]={0},a[102][101]={0},temp[100];
scanf('%d ',k);
而(k -)
{
n=0;
scanf('%d ',m);
scanf(“% s”,字符串);
len=strlen(str);
for(I=0;I=len-m;(一)
{
l=0;
for(j=I;Ji m;j,l)
{
a[n][l]=str[j];//子字符串
}
n;
}
for(I=0;在;I )//排序
{
for(j=I ^ 1;jn;j)
{
if(strcmp(a[i],a[j])0)
{
strcpy(temp,a[I]);
strcpy(a[i],a[j]);
strcpy(a[j],temp);
}
}
}
for(I=0;在;(一)
{
If(strcmp(a[i],a[i 1])==0)//如果第一个相同,则只输出第一个。
继续;
for(j=0;JM;j)
printf('%c ',a[I][j]);
printf(' \ n ');
}
printf(' \ n ');
memset(str,' \0 ',sizeof(str));
memset(a,' \0 ',sizeof(a));
memset(temp,' \0 ',sizeof(temp));
}
返回0;
}关于C语言如何输出唯一子串这个问题的答案在这里分享,希望。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/137935.html