洛谷 P1012 拼数
题解:
本题实质是贪心,所以排序就好。排序条件是保证 a+b > b+a 即可。
心得:
一开始想的太复杂,各种什么首位判断大小,一位位比较啊,似乎鄙人就是喜欢这么想的复杂,无奈脸╮(╯▽╰)╭
①第一次用sort来排序字符串(自带字典序排序)
②string 类型可以直接比较和运算(这个我晓得,只是没想到怎么个贪心发法)
代码:
#include<bits/stdc++.h>
using namespace std;
string num[25];
int n;
bool cmp(string a,string b){
return a+b > b+a;
}
int main(){
cin >> n;
for(int i = 0; i < n; ++i)
cin >> num[i];
sort(num,num+n,cmp);
for(int i = 0; i < n; ++i)
cout << num[i];
cout << endl;
return 0;
}