首页 > 其他 > 详细

Leetcode#179 Largest Number

时间:2015-01-26 18:59:39      阅读:224      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!