0
已解决
柯以成
新手光能
新手光能
题目描述 Description
小明最近学习了很多的排序算法。老师想检验一下他的水平,给他出了一道题目:现在有n个字符串(包含空格)需要进行排序,先按照字符串中数字的个数从大到小排序,如果数字个数相同,再按照字母的个数从小到大排序,如果字母个数相同,则按照字典序进行排序。
输入描述 Input Description
第一行输入一个整数n(n<=10000)
接下来n行,每行输入一个字符串(不超过300位)
输出描述 Output Description
输出共n行
表示排序后的字符串
样例输入 Sample Input
3
abcdef123
123abcdef
12345abcdef
样例输出 Sample Output
12345abcdef
123abcdef
abcdef123
1
已采纳
李素妍
新手天翼
新手天翼
bool cmp(cmd a,cmd b){
if(a.cnt!=b.cnt) return a.cnt>b.cnt;
if(a.cnt1!=b.cnt1) return a.cnt1<b.cnt1;
return a.c<b.c;
}
这是cmp
int mz(string s){
int sum=0;
for(int i=0;i<s.size();i++){
if((s[i]>='a' && s[i]<='z')||(s[i]>='A' && s[i]<='Z')){
sum+=1;
}
}
return sum;
}
int mz1(string s){
int sum1=0;
for(int i=0;i<s.size();i++){
if(s[i]>='0' && s[i]<='9'){
sum1+=1;
}
}
return sum1;
}
这是判断是否是字母或数字
剩下的自己想
1
0
0
0
0
0