方法:贪心策略,对字符串进行排序,然后对首位的零做特殊处理。
注意点:全零的特殊情况
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> ve;
bool cmp(string a,string b){
return a+b<b+a;
}
int main(){
int num;
string temp;
scanf("%d",&num);
for(int i=0;i<num;i++){
cin>>temp;
ve.push_back(temp);
}
sort(ve.begin(),ve.end(),cmp);
bool leading=true;
for(int i=0;i<ve.size();i++){
for(int j=0;j<ve[i].size();j++){
if((i!=ve.size()-1||j!=ve[i].size()-1)&&ve[i][j]=='0'&&leading) continue;
// (i!=ve.size()-1||j!=ve[i].size()-1) 应对全零的情况,输出最后一个零
leading=false;
printf("%c",ve[i][j]);
}
}
return 0;
}