#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;
}