说明
对于给定的 n 个字符串,进行如下的排序:
- 首先按字符串长度从小到大排序
- 当字符串长度相同时,按字典序从小到大排序
现在,你需要编程实现这样的排序功能。
输入格式
输入有 n+1 行:
-
第一行为一个整数 n,0<n≤10000;
-
接下来 n 行,每行有一个字符串,字符串的长度均不超过 1000。
输出格式
输出 n 行,依次为按照题目要求排序后的字符串,每行一个。
样例
输入数据 1
5
abcd
abc
go
jisuanke
zero
输出数据 1
go
abc
abcd
zero
jisuanke
代码
#include<bits/stdc++.h>
using namespace std;
bool cmp(string x,string y){
if(x.size()>y.size())return false;
if(x.size()<y.size())return true;
if(x.size()==y.size())return x<y;
}
string a[10001];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i]<<endl;
}
return 0;
}