题目:链接:https://ac.nowcoder.com/acm/problem/16783
来源:牛客网

设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
解决方法:贪心
思路:按照字典排序 既13 312 343 排序为 343 312 13
但是有一个地方有问题 当数字为32 321时,会将321排在32前面 输出为32132。 但实际最大数为32321。
故以字符组运算,字符组a+字符组b>字符组b+字符组a时,将a排在前面,则解决了。

#include<iostream>
#include<algorithm>
using namespace std;
bool cmd(string a,string b)
{
    return a+b>b+a;
}
int main()
{
    int n;
    cin>>n;
      string a[25];
    for(int i=0;i<n;i++)
        cin>>a[i];

    sort(a,a+n,cmd);
    for(int i=0;i<n;i++)
    {
       cout<<a[i];
     }
    return 0;
}