/* [把数组排成最小数] 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 */ #include <iostream> #include <vector> #include <algorithm> using namespace std; class Solution{ public: string PrintMinNumber(vector<int> numbers){ vector<string> strs(numbers.size()); for(int i=0; i<numbers.size(); i++){ strs[i] = to_string(numbers[i]); } sort(strs.begin(), strs.end(), comp); string ans; for(string s : strs){ ans.append(s); } return ans; } static bool comp(string str1, string str2){ string str12 = str1 + str2; string str21 = str2 + str1; return str12 < str21; } }; int main() { return 0; }
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15293.html