题意:
给n个整数,把它们连接成一个最大的整数。
思路:
一开始觉得是整数字典序排序后输出。。后来发现不对。。结果越改越错,越改越挫,尝试了很多种方式修正,最后被自己hack了。。
后来才意识到这其实很水,相当水。。
对于两个整数a和b,比较ab和ba的字典序,然后根据这个来排序即可。
初始代码修正过程中写了2000b,最后ac代码写了400b
代码:
#include<bits/stdc++.h>
using namespace std;
string s[55];
bool cmp(string a, string b){
return a + b > b + a;
}
int main()
{
int n;
while (cin >> n && n) {
for (int i = 0; i < n; i++) cin >> s[i];
sort(s, s + n, cmp);
for (int i = 0; i < n; i++) cout << s[i];
cout << endl;
}
return 0;
}