题意:
n个正整数,把他们拼成一个最大的整数
思路:
刚开始忽略了一个细节,对长度不同的各个整数的处理。
后来看到经典处理方法:123和56的比较可转为12356和56123的比较!
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 55;
string arr[N];
int cmp(string a,string b) {
return a + b > b + a;
}
int main(){
int n;
while (~scanf("%d", &n) && n){
for (int i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr + n, cmp);
for (int i = 0; i < n; i++)
cout<<arr[i];
printf("\n");
}
}

本文介绍了一种将多个正整数拼接成一个最大整数的算法实现过程,通过对比字符串来解决不同长度整数的比较问题。
339

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



