拼數(sort對字符串排序)

題目鏈接:https://www.luogu.com.cn/problem/P1012
看完題就在想不就是對字符串按字典序從大到小排序嘛,記得之前這樣排過,可惜又給忘了,只能找度娘了。。
結果竟然WA了。仔細想想不完全是按字典序,有一些情況不行。舉個栗子:5和54
5的字典序小於54,但是554大於545。還是得排序不過不用按字典序

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<cstring>
#include<string>
using namespace std;
typedef unsigned long long ll; 
int n;
string s[50];
bool cmp(string a,string b)//直接比較兩種情況的字典序
{
	return a+b>b+a;
}
int main()
{ 
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>s[i];
	sort(s,s+n,cmp);//這樣定義string,對於s沒有begin(),end(),size()
	for(int i=0;i<n;i++)
		cout<<s[i];
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章