首页 > 其他 > 详细

[leetcode]Largest Number

时间:2015-01-13 10:26:33      阅读:252      评论:0      收藏:0      [点我收藏+]

给一组数字求拼起来最大的那个,其实按照我们的想法就是把大的放前面呗,那到底哪个大呢。

数字a,b拼接起来就是ab,或者ba看这两个哪个大,就ab大就把a放前面,ba大就把b放前面。

排个序就好。。。注意考虑都是0的情况。。。(因为下面我们用的是字符串

 

class Solution {
public:
    string largestNumber(vector<int> &num) {
        vector<string> strs;
        for_each(num.begin(), num.end(), [&](int i) {
            strs.push_back(to_string(i));
        });
        sort(strs.begin(), strs.end(), [&](const string& a, const string& b) {
           return (a + b) > (b + a); 
        });
        string ans = "";
        for_each(strs.begin(), strs.end(), [&](string& i) {
            if (ans == "" && i == "0") return;
            ans += i;
        });
        return ans == "" ? "0" : ans;
    }
};

 

[leetcode]Largest Number

原文:http://www.cnblogs.com/x1957/p/4220494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!