这个题的问题很简单: 让你在给出的几个数字中组合,使得最后得出的数最大就可以
使用了string来读,在自己写cmp去sort 然后输出就可以了,记录这一题的原因是很少用到string的sort
学习学习。。。
//另外,我在函数中用了memset来初始化string数组,不知道这个函数是不是时间复杂度很高,最开始交的时候超时了
后来把它注释了就AC了,以后再碰到这个情况要注意了
下面是代码
#include<stdio.h>
#include<iostream>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
string con[55];
bool cmp(string a, string b)
{
return a + b > b + a;
}
int main(){
int n;
while (cin >> n && n ){
//memset(con, 0, sizeof(con));
for (int i = 0; i < n; i++)
cin >> con[i];
sort(con, con + n,cmp);
for (int i = 0; i < n; i++)
cout << con[i];
cout << endl;
}
return 0;
}