标签:
Given a list of non negative integers, arrange them such that they form the largest number.
For example, given [3, 30, 34, 5, 9]
, the largest formed number is
9534330
.
Note: The result may be very large, so you need to return a string instead of an integer.
bool cmp(const string a, const string b){ return (a+b) > (b+a); } class Solution { public: string tostring(int x){ if(x == 0) return "0"; string tmp = ""; while(x){ tmp = (char)(x%10+'0') + tmp; x /= 10; } return tmp; } vector<string>s; string largestNumber(vector<int> &num) { for(int i = 0; i < num.size(); i++) s.push_back(tostring(num[i])); sort(s.begin(),s.end(),cmp); string ans = ""; for(int i = 0; i < s.size(); i++) if(ans != "" || s[i] != "0") ans += s[i]; return ans == "" ? "0" : ans; } };
标签:
原文地址:http://blog.csdn.net/sina012345/article/details/43085053