码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode#179 Largest Number

时间:2015-01-26 19:00:19      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

原题地址

 

先将数字转成字符串,然后排序,让能够组成更大数字的字符串放在前面,最后拼接成完整的字符串即可。

有种很巧妙的方法判断两个字符串的大小关系,假设两个字符串是A,B,则比较AB和BA,若AB比BA大,说明A应该放在前面,即A<B,其他同理。

 

代码:

 1 string largestNumber(vector<int> &num) {
 2   string res;
 3 
 4   vector<string> strs;
 5   for (auto n : num) {
 6     string str;
 7     toString(str, n);
 8     strs.push_back(str);
 9   }
10 
11   sort(strs.begin(), strs.end(), [](string &a, string &b) {return (a + b) > (b + a);});
12 
13   for (auto str : strs) {
14     if (str == "0" && res.empty())
15       continue;
16     res += str;
17   }
18 
19   return res.empty() ? "0" : res;
20 }

 

Leetcode#179 Largest Number

标签:

原文地址:http://www.cnblogs.com/boring09/p/4250740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!