题目描述
输入n个正整数Xi,输出由这些正整数拼接而成的最大正整数。
输入
第一行只有一个正整数:n
第二行共有n个正整数,数与数之间用一个空格隔开
( 1 < n <= 20 )
( 1 < Xi < 30 000 000 )
输出
只有一行且只有一个正整数:拼接而成的最大正整数
样例输入
3
13 312 343
样例输出
34331213
思路:先定义函数布尔型的cmp,表示排序方式,再定义字符串s,输入s,然后用sort进行排序,最后输出。
上代码:
#include <bits/stdc++.h>//万能头
using namespace std;
bool cmp(string a,string b){//来个自定义
return (a+b)>(b+a);//排序方式
}
int main(){
int n;
cin>>n;
string s[100];//使用字符串更方便
for(int i=0;i<n;i++){
//TODO
cin>>s[i];//输入
}
sort(s,s+n,cmp);//快排搞定
for(int i=0;i<n;i++){
//TODO
cout<<s[i];//输出
}
return 0;//完美结束
}
有哪位大佬有更简便的方法,欢迎私信!