先把他变成两个字符串拼接后,类似贪心的思想,但是这个自定义cmp的函数的使用,还是参考柳神的,自己真的想不出来…还是太菜了
#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b)
{
return (a + b) < (b + a);
}
const int MAXN = 10010;
string str[MAXN];
int main(void)
{
freopen("pat0314/in.txt","r",stdin);
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>str[i];
}
sort(str,str + n,cmp);
string s;
for(int i = 0;i<n;i++)
{
s += str[i];
}
while(s[0] == '0')
{
s.erase(s.begin());
}
if(s.size() == 0)
{
cout<<"0"<<endl;
}
else
{
cout<<s<<endl;
}
return 0;
}