代码如下:
#include<iostream>
#include<cstring>
using namespace std;
char a[100005][105],ans[105],sum[100005][105];
int suml[100005];
int n;
int cmp(int p){
int c=0;
for(int i=0; i<strlen(ans); i++)
if(ans[i]==a[p][i])
c++;
else break;
return c;
}
int dx(int c,int l){
if(sum[c][l]<sum[c-1][l])
return 1;
if(sum[c][l]==sum[c-1][l]&&l<n)
dx(c,l+1);
return 0;
}
void sor(int c){
if(dx(c,0)==1){
swap(sum[c],sum[c-1]);
sor(c-1);
}
else return;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
cin.getline(a[i],105);
cin.getline(ans,105);
int c;
for(int i=1; i<=n; i++)
if(cmp(i)){
c++;
for(int j=0; j<strlen(a[i]); j++)
sum[c][j]=a[i][j];
suml[c]=strlen(a[i]);
sor(c);
}
for(int i=1; i<=c; i++){
for(int j=1; j<=suml[i]; j++)
cout<<sum[i][j];
cout<<endl;
}
return 0;
}
回复并且内容有用的+1关注