经典题目,给N个数,重新顺序,首尾相接,让组成的新数最小.
按相连的大小顺序排序.注意输出0的情况
#include <bits/stdc++.h>
using namespace std;
bool cmp(string a, string b)
{
return a + b < b + a;
}
int main()
{
int N;
cin >> N;
vector<string> a;
for (int i = 0; i < N; i++) {
string x;
cin >> x;
a.push_back(x);
}
sort(a.begin(), a.end(), cmp);
string ans;
for (auto e : a) ans += e;
int i = 0;
while (ans[i] == '0' && i < ans.size()) i++;
if (i == ans.size()) cout << '0';
else for (;i < ans.size(); i++) cout << ans[i];
cout << endl;
}