题目描述
对于一个字符串,将其后缀子串进行排序,例如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;
}