一道新手贪心算法入门题
思路:任意两个数拼起来大的要排前面(类比冒泡排序)
注:字典序(字符串的排序规则):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;
}