#include <bits/stdc++.h> using namespace std; int main() { string str; while(cin >> str) { vector<string> myvector; for(int i = str.size() - 1, j = 1; i >= 0; i--, j++) { string temp = str.substr(i, j); myvector.push_back(temp); } sort(myvector.begin(), myvector.end()); for(int i = 0; i < myvector.size(); i++) { cout << myvector[i] << endl; } } return 0; }
sort + substr
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool cmp(string a, string b){
for(int i = 0; i < a.length() && i < b.length(); i++){
if(a[i] != b[i]){
return a[i] < b[i];
}
}
return a.length() < b.length();
}
int main(){
string str;
while(cin >> str){
string *substr = new string[str.length()];
for(int i = 0; i < str.length(); i++){
substr[i] = str.substr(i, str.length() + 1);
}
sort(substr, substr + str.length(), cmp);
for(int i = 0; i < str.length(); i++){
cout << substr[i] << endl;
}
}
return 0;
}
#include<iostream> #include<string> #include<algorithm> using namespace std; int main(){ string s; while(cin>>s){ string a[s.size()]; for(int i=0;i<s.size();i++){ a[i]=s.substr(i,s.size()-i); } sort(a,a+s.size()); for(int i=0;i<s.size();i++)cout<<a[i]<<endl; } return 0; }
#include<stdio.h> (737)#include<string.h> #define N 100//1.分割放在二维数组中 2.排序 3.输出 int main() { char a[N],b[N][N],temp[N];int n,i,j; scanf("%s",a); n=strlen(a); for(i=0;i<n;i++)//1.分割 strcpy(b[i],a+i); for(i=0;i<n-1;i++)//2.排序 for(j=0;j<n-1-i;j++) if(strcmp(b[j],b[j+1])>0) {//交换 strcpy(temp,b[j]);strcpy(b[j],b[j+1]);strcpy(b[j+1],temp); } for(i=0;i<n;i++)//输出 printf("%s\n",b[i]); }
用好sort还是很无敌的hhh #include<iostream> #include<cstring> #include<string> #include<algorithm> using namespace std; bool cmp(string a,string b){ return a<b; } int main(){ string input; while(getline(cin,input)){ int len=input.length(); string* str=new string[len]; for(int i=0;i<len;i++) str[i]=input.substr(i,len-i); sort(str,str+len,cmp); for(int i=0;i<len;i++) cout<<str[i]<<endl; } }
#include<bits/stdc++.h> using namespace std; int main(){ string str; while(cin>>str){ map<string,int>child; for(int i=0;i<str.size();i++){ child[str.substr(i)]++; } map<string,int>::iterator it; for(it=child.begin();it!=child.end();it++){ cout<<it->first<<endl; } } return 0; }
import java.util.Scanner; import java.util.TreeSet; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); TreeSet<String> set = new TreeSet<>(); String s = scanner.next(); for (int i = 0; i < s.length(); i++) set.add(s.substring(i)); for (String s1 : set) System.out.println(s1); } }
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main(){ string s; cin>>s; vector<string> v; for(int i=0;i<s.length();i++) v.push_back(string(s,i,s.length()-i)); sort(v.begin(),v.end()); for(int i=0;i<v.size();i++) cout<<v[i]<<endl; }
#include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; int main() { string str; while (getline(cin, str)) { vector<string>substr; for (int i = 0; i < str.size(); i++) { substr.push_back(str.substr(i)); } sort(substr.begin(), substr.end()); for (const auto& str : substr) { cout << str << endl; } } return 0; }
#include <algorithm> #include <iostream> using namespace std; int main() { string str; cin>>str; string a[1000]; for (int i=0; i<str.size(); i++) { a[i]=str.substr(i); } sort(a,a+str.size()); for (int i=0; i<str.size(); i++) { cout<<a[i]<<endl; } return 0; } // 64 位输出请用 printf("%lld")
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main() { string S; cin >> S; vector<string>Matrix; Matrix.reserve(S.length()); for (int i = 0; i < S.length(); ++i) { Matrix.emplace_back(S.substr(i)); } sort(Matrix.begin(), Matrix.end()); for (string& element : Matrix) { cout << element << endl; } }
#include <algorithm> #include <iostream> #include <string> #include <vector> using namespace std; int main() { string str; while (cin >> str) { vector<string> s; for (int i = 0; i < str.size(); i++) { s.push_back(str.substr(i)); } sort(s.begin(), s.end()); for(string s1:s){ cout<<s1<<endl; } } }
#include <iostream> #include <string> #include <algorithm> using namespace std; int main(){ string str; cin >> str; int len = str.length(); string arr[100]; for(int i = 0; i < len ; ++i){ arr[i] = str.substr(i); } sort(arr,arr+len); for(int i = 0; i < len; ++i){ cout<<arr[i]<<endl; } return 0; }
#include <bits/stdc++.h> using namespace std; string str; int main() { while (getline(cin, str)) { vector<string> s; for (int i = str.length() - 1; i >= 0; i--) s.emplace_back(str.substr(i)); sort(s.begin(), s.end()); for (int i = 0; i < s.size(); i++) cout << s[i] << endl; } return 0; }