将nums数组中的整数转换为string,然后将这些string保存到vector中,定义lambda表达式对string元素进行排序(注意4, 410这种情况),方法是对两个元素进行拼接,然后比较拼接之后的大小。最后对已经排序的string数组连接起来就可以了。
class Solution {
public:
/**
* 最大数
* @param nums int整型vector
* @return string字符串
*/
string solve(vector<int>& nums) {
vector<string> vec{};
for(auto x: nums) vec.push_back(to_string(x));
auto cmp=[](string str1,string str2){
int temp1=stoi(str1+str2);
int temp2=stoi(str2+str1);
if(temp1>temp2) return true;
else return false;
};
sort(vec.begin(),vec.end(),cmp);
string result{};
for(auto s: vec) result+=s;
if (result[ 0 ] == '0') result = "0";
return result;
}
};