问题描述:
解题分析:
思路:
- 可以先将数字按照一定的规则排序,从小到大
- 然后将其拼接
排序规则:
- 先将数组中的所有数字转换成string
- 然后将转换后的string 按照大小,从小到大。规定,若字符串a和b, ab<ba,则a<b
STL中的sort函数
- 一般是这么写
sort(num.begin(),num.end()) 表示升序
- 如果要表示降序排列
sort(num.begin(),num.end(),compare)
compare是一个静态的成员函数,前面要有static,一般有2个参数,返回值是bool类型
这个题目的代码
class Solution {
public:
string minNumber(vector<int>& nums) {
vector<string>strs;
string res;
for(auto num:nums)
{
strs.push_back(to_string(num));
}
sort(strs.begin(),strs.end(),compare);
for(auto str:strs)
{
res+=str;
}
return res;
}
//compare这个函数必须是一个静态的成员函数
static bool compare(const string a,const string b)
{
return a+b< b+a;
}
};