0
已解决
曹子浩
新手光能
新手光能
题目链接: 酷町堂:3983
题目描述 De**ion
现在有n个字符串(包含空格)需要进行排序,先按照字母的个数从小到大排序,如果字母个数相同,则按照字典序进行排序。
输入描述 Input De**ion
第一行输入一个整数n(n<=10000)
接下来n行,每行输入一个字符串(不超过300位)
输出描述 Output De**ion
输出共n行
表示排序后的字符串
样例输入 Sample Input
3 abcdef123 123abcdef 12345abcdef
样例输出 Sample Output
12345abcdef 123abcdef abcdef123
错误代码:
#include<iostream>
#include<iomanip>
#include<string>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int n;
string s[10005];
bool cmp(string x,string y){
if(x.size()!=y.size()){
return x.size()<y.size();
}
return x>y;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
getline(cin,s[i]);
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i]<<endl;
}
}