#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 10000+5;
bool cmp(string a, string b) {
return a+b < b+a;
}
string s[N];
int main() {
int n;
scanf("%d", &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];
while(ans.length()) {
if(ans[0] == '0') {
ans.erase(ans.begin());
} else break;
}
if(ans.length() == 0) {
cout << 0 << endl;
} else
cout << ans << endl;
return 0;
}
本文介绍了一种基于比较的字符串排序算法,该算法通过自定义比较函数实现字符串的最优排序,随后进行拼接,避免前导零的问题,并提供了一个完整的C++实现示例。
218

被折叠的 条评论
为什么被折叠?



