题意:
n个正整数,把他们拼成一个最大的整数
思路:
刚开始忽略了一个细节,对长度不同的各个整数的处理。
后来看到经典处理方法:123和56的比较可转为12356和56123的比较!
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 55;
string arr[N];
int cmp(string a,string b) {
return a + b > b + a;
}
int main(){
int n;
while (~scanf("%d", &n) && n){
for (int i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++)
cout<<arr[i];
printf("\n");
}
}