Leetcode Largest Number

来源:互联网 发布:淘宝类目有哪些 编辑:程序博客网 时间:2024/06/10 02:00

题意:给出一组数字,求他们能组成的最大数字。

思路:将这组数字排序, 如果s1 + s2 > s2 + s1,那么s1 在s2 前面。

class Solution {public:    string largestNumber(vector<int>& nums) {        vector<string> mys;        for(unsigned i = 0; i < nums.size(); ++ i) {             string temps;            int  tempn = nums[i];                        if(tempn == 0) temps += ('0' + tempn % 10);            while(tempn) {                temps += ('0' + tempn % 10);                tempn /= 10;            }            std::reverse(temps.begin(), temps.end());            mys.push_back(temps);        }        std::sort(mys.begin(), mys.end(),[](string &s1, string &s2){return s1 + s2 < s2 + s1;});                string re;        string half;        for(int i = (mys.size() - 1); i >= 0; i --) {             re += mys[i];        }        while(re[0] == '0') re.erase(re.begin());        if(re.length() == 0) re += '0';        return re;    }};


0 0
原创粉丝点击