#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){
return a+b<b+a;
}
int main(){
string a[100000];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
string ans="";
for(int i=0;i<n;i++){
ans+=a[i];
}
while(ans[0]=='0'&&ans.size()!=0){//ans.begin()返回一个迭代器第一个位置而不是元素,ans.end()最后一个元素下一个为简单来说 返回位置不返回元素
ans.erase(ans.begin());
}
if(ans.size()==0)
cout<<0;
else{
cout<<ans;
}
return 0;
}
总结
1.cmp是一个对数组排序的总体性的函数,所以可以直接表示两个string拼接后也要小于整体也符合这种特性
2.begin() ,end()返回的是位置不是元素
3.去头0时要注意都取光了,要再
英语
问题 无