您的位置:首页 > 其它

LeetCode-179.Largest Number

2016-07-14 12:58 176 查看
https://leetcode.com/problems/largest-number/

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.

其实是数字比较大小的排序问题

对于数字a,b,如果"ab">"ba",那么a就应该在b的前面

因此string largestNumber(vector<int>& nums)
{
if (nums.empty())
return "";
vector<string> arr;
for (int i : nums)
arr.push_back(to_string(i));
sort(begin(arr), end(arr), [](string &s1, string &s2) { return s1 + s2>s2 + s1; });
string res;
for (auto s : arr)
res += s;
while (res[0] == '0' && res.length()>1)
res.erase(0, 1);
return res;
}
参考 《剑指Offer》P177
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode