参考资料:
[1]乒乓的回答。
https://www.nowcoder.com/profile/4163181/codeBookDetail?submissionId=15577844
[2]C++中string的排序标准
关键词:
to_string()、比较标准
思路:
自己的答案:
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
//自己定义排序标准
string C = "";
sort(numbers.begin(),numbers.end(),cmp);
for(int i=0;i<numbers.size();i++)
{
C+=to_string(numbers[i]);
}
return C;
}
static bool cmp(int num1,int num2)
{
string A = "";
string B = "";
A+=to_string(num1);
A+=to_string(num2);
B+=to_string(num2);
B+=to_string(num1);
return A<B;
}
};
标准答案:
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
//步骤1:按某个规则进行排序
sort(numbers.begin(),numbers.end(),cmp);
//步骤2:把数组写出来
string C = "";//输出的字符串
for(int i=0;i<numbers.size();i++)
{
C+=to_string(numbers[i]);
}
return C;
}
static bool cmp(int a,int b)
{
string A = "";
string B = "";
A+=to_string(a);
A+=to_string(b);
B+=to_string(b);
B+=to_string(a);
return A<B;//true的话,a,b不动,false的话,a,b互换。
}
};