Time Limit: 1 Sec Memory Limit: 32 MB
Submit: 15 Solved: 10
[Submit][Status][Web Board]Description
对于一个字符串,将其后缀子串进行排序,例如grain
其子串有:
grain
rain
ain
in
n
然后对各子串按字典顺序排序,即:
ain,grain,in,n,rainInput
每个案例为一行字符串。
Output
将子串排序输出
Sample Input
grain banana
Sample Output
ain grain in n rain a ana anana banana na nana
get两个点就能做,1.strncpy 2.qsort,找了两篇博客,看了大概能明白了。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return strcmp((char*)a,(char*)b) ;
}
int main()
{
char a[1000],b[1000][1000];
while(scanf("%s",a) != EOF)
{
getchar();
int len = strlen(a);
for(int i = 0 ;i < len ;i++)
{
strncpy(b[i],a + i,len - i);
b[i][len - i] = '\0';
}
qsort(b,len,sizeof(b[0]),cmp);
for(int i = 0;i < len;i ++)
puts(b[i]);
}
return 0;
}