CodingInterview-把数组排成最小的数

如果有思路的话写起来并不复杂,就是先将字符串进行排序,然后合并输出。而排序的算法是按位比较两个字符串相连后的结果。

另外,在这里也学习了 C++的 to_string 方法和 sort 方法的用法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
string PrintMinNumber(vector<int> numbers) {
int numSize=(int)numbers.size();
if(numSize<=0) return "";
sort(numbers.begin(),numbers.end(),compare);
string result;
for(int i=0;i<numSize;i++){
result+=to_string(numbers[i]);
}
return result;
}
bool static compare(int a,int b){
string s1=to_string(a)+to_string(b);
string s2=to_string(b)+to_string(a);
return s1<s2;
}

};