题目描述
贪心/?
可以用a + b < b + a
来判断a
和b
两个字符串的前后位置
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e4 + 10;
int n;
string s[N];
void remove_zero(string &s)
{
while (s.size() > 1 && s[0] == '0') s = s.substr(1, s.size() - 1);
}
bool cmp(string &a, string &b)
{
return a + b < b + a;
}
int main()
{
cin >> n;
for (int i = 0; i < n; i ++) cin >> s[i];
sort(s, s + n, cmp);
string ans;
for (int i = 0; i < n; i ++) ans += s[i];
remove_zero(ans);
cout << ans;
}
妙!
妙手