题意:给定n个数字字符串,求他们能组成的最大数字字符串。
做法:用<string>,cmp比较函数比较s+t与t+s即可。
代码:
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <stdio.h>
#define zz
using namespace std;
bool cmp(const string&s, const string&t){
return s+t>t+s;
}
int main(){
#ifndef zz
freopen("in.txt", "r", stdin);
#endif
int n;
while(scanf("%d", &n)!=EOF&&n){
string s;
int i, j;
vector<string>vs;
for(i=0; i<n; i++){
cin >> s;
vs.push_back(s);
}
sort(vs.begin(), vs.end(), cmp);
for(i=0; i<vs.size(); i++)
cout << vs[i];
cout << endl;
}
return 0;
}