字符串后缀排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41648259/article/details/88286682

题目描述

对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain

输入描述:

每个案例为一行字符串。

输出描述:

将子串排序输出

示例1

输入

复制

grain

输出

复制

ain
grain
in
n
rain

#include<iostream>
#include<string>
#include<algorithm>
#define MAXSIZE 1000
using namespace std;
char buf[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
bool cmp(string str1,string str2){
    return str1<str2;
}
int main(){
    int i,j;
    string str,res[MAXSIZE];
    cin>>str;
    for(i=0;i<26;i++){
        char c=buf[i];
        int count=0;
     for(j=0;j<str.length();j++){
        if(c==str[j]){
            res[count++]=str.substr(j,str.length());
        }
             
     }
     sort(res,res+count,cmp);
     for(j=0;j<count;j++){
         cout<<res[j]<<endl;
         res[j]=" ";
     }

    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_41648259/article/details/88286682
今日推荐