您的位置:首页 > 其它

九度OJ—题目1099:后缀子串排序

2015-01-02 17:55 176 查看
题目描述:
对于一个字符串,将其后缀子串进行排序,例如grain

其子串有:

grain

rain

ain

in

n

然后对各子串按字典顺序排序,即:

ain,grain,in,n,rain

输入:
每个案例为一行字符串。

输出:
将子串排序输出

样例输入:
grain


样例输出:
ain
grain
in
n
rain


来源: 2010年上海交通大学计算机研究生机试真题

答疑: 解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7822-1-1.html
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h>
  
//排序函数(二维字符串数组) 
int compare(const void *a,const void *b){ 
    return (strcmp((char*)a,(char*)b)); 
} 
 
int main() 
{
    char s[100][100];
    int i,len;
    while(scanf("%s",s[0])!=EOF) 
    { 
        len=strlen(s[0]); 
        for(i=1;i<len;++i) 
        {
            //将其后缀子串复制到s数组中
            strcpy(s[i],s[0]+i); 
        } 
        qsort(s,len,100,compare);
         
        for(i=0;i<len;++i) 
            printf("%s\n",s[i]); 
    } 
    return 0; 
}
/**************************************************************
    Problem: 1099
    User: vhreal
    Language: C
    Result: Accepted
    Time:0 ms
    Memory:912 kb
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: