一道新手贪心算法入门题

思路:任意两个数拼起来大的要排前面(类比冒泡排序)

注:字典序(字符串的排序规则):1.从第一个字符比到能比的最后一个字符,acill码小的排前面 2.有公共部分的,短的排前面

AC代码:

#include<iostream>
#include<string>
#include<algorithm>//sort()
using namespace std;
bool comp(string a,string b)
{
    return a+b>b+a;//a和b拼起来的字典序大于b+a,那么a就排前面
}
int main()
{
    int n;cin>>n;
    string s[25];//string数组,每个元素都是字符串,并不是在指定string的长度
    for(int i=1;i<=n;i++) {cin>>s[i];}
    sort(s+1,s+n+1,comp);
    for(int i=1;i<=n;i++) {cout<<s[i];}
    
    return 0;
}