问题标题: 酷町堂:3826

0
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
我要回答