#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(string b,string a)
{
    return b+a>a+b;}//灵魂在这
int main()
{
    string a[21];
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++)cout<<a[i];
}

就是这样看标记的那一行(想学的慢慢读完)。利用一个字符串数组,两个数组相加不是数值相加而是直接相加:样例123+345=123345.利用这个性质,将前一项与后一项(123345和345123代表a+b与b+a)相比较,从第一位ascll码开始,往后比,直到比出一项有大小的,由于这一位在高位,所以在前面几位相同的情况下这一位决定着两种组合的大小!于是就出来了。。。。。

相关文章:

  • 2021-07-20
  • 2021-07-01
  • 2022-03-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
猜你喜欢
  • 2020-06-06
  • 2021-06-22
  • 2022-02-23
  • 2021-09-08
  • 2022-12-23
相关资源
相似解决方案