如果有思路的话写起来并不复杂,就是先将字符串进行排序,然后合并输出。而排序的算法是按位比较两个字符串相连后的结果。
另外,在这里也学习了 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; }
};
|