0
已解决
包涵宇
中级天翼
中级天翼
样例过了,0分
#include<bits/stdc++.h>
using namespace std;
struct cmd{
string c;
}v[100000];
bool cmp(cmd a,cmd b){
if(a.c.size()!=b.c.size())return a.c.size()>b.c.size();
for(int i=0;i<a.c.size();i++)
if(a.c[i]!=b.c[i])return a.c[i]<b.c[i];
}
int main()
{
int n=0;
cin>>n;
getchar();
for(int i=0;i<n;i++)getline(cin,v[i].c);
sort(v,v+n,cmp);
for(int i=0;i<n;i++)
cout<<v[i].c<<"\n";
return 0;
}
求助!!!!!!!!!!
包涵宇在2019-08-27 19:54:47追加了内容
改了一下,还是0分:
#include<bits/stdc++.h>
using namespace std;
struct cmd{
string c;
}v[100000];
bool cmp(cmd a,cmd b){
if(a.c.size()!=b.c.size())return a.c.size()>b.c.size();
return a.c<b.c;
}
int main()
{
int n=0;
cin>>n;
getchar();
for(int i=0;i<n;i++)getline(cin,v[i].c);
sort(v,v+n,cmp);
for(int i=0;i<n;i++)
cout<<v[i].c<<"\n";
return 0;
}
0
已采纳
董子墨
中级天翼
中级天翼
包涵宇,看好题目!!!
题目上说的是:记录字符串中数字的个数,按从大到小排序,如果数字数量相同,按字母数量从小到大排序,如果字母数量一样,按字典序排序。
核心:
bool cmp(cmd a,cmd b){
if(a.cnt!=b.cnt)return a.cnt>b.cnt;//cnt是我记录数字个数的计数器
if(a.cnt1!=b.cnt1)return a.cnt1<b.cnt1;//cnt1是我记录字母个数的计数器
return a.c<b.c;
}
最后:
望采纳
0
0