/*
题目:
给定一个int数组,返回数组中各数字排成的最下字符串。
*/
/*
思路:
比较两个数字之间的先后顺序,谁排在前面更小,从而对数组进行排序,得到结果。
两个数字先后顺序的比较方法:两个数字连接,比较两种连接方式得到的字符串哪个大。
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
static bool cmp(int a,int b){
string astr = to_string(a) + to_string(b);
string bstr = to_string(b) + to_string(a);
return astr > bstr;
}
string PrintMinNumber(vector<int> numbers) {
string res = "";
int length = numbers.size();
sort(numbers.begin(),numbers.end(),cmp);
for(int i = length - 1; i >= 0; i--){
res += to_string(numbers[i]);
}
return res;
}
int main(){
vector<int> a = {3,32,321};
cout<<PrintMinNumber(a);
}