题目如下:
思路如下:
1.首先会想到 把三个数从大到小的排列一遍
比如样例中的 34331213
但是可能会忽略一种情况 32 312 这种
字符串比较大小的时候 会输出31232 但是这种
就不是最大的了
2.骚操作就在这里 重新编写一个比较大小的函数
a+b>b+a //32 312 输出 32312
代码如下(不知道为什么我的编译器dev 不能运行出来,
但是却可以提交通过)
代码如下:
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; bool cmp(string a,string b){ return a+b>b+a; //12 112 } int main(){ int n; string s[n+1]; cin>>n; for(int i=0;i<n;i++) cin>>s[i]; sort(s,s+n,cmp); for(int i=0;i<n;i++) cout<<s[i]; return 0; }