经典面试题,需要排序,关键是知道 a+b<b+a
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
bool cmp(string a ,string b){
return a+b<b+a;
}
int n;
string tmp,ans;
vector<string> num;
int main(){
cin>>n;
while(n--){
cin>>tmp;
num.push_back(tmp);
}
sort(num.begin(),num.end(),cmp);
for(int i=0;i<num.size();i++){
ans+=num[i];
}
bool flag=false;
//cout<<ans<<endl;
for(int i=0;i<ans.size();i++){
if(ans[i]=='0'&&!flag)
continue;
else
flag=1,printf("%c",ans[i]);
}
if(!flag)
printf("0\n");
return 0;
}