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,然后比较大小,然后再把所有的a都去掉。这样子应该是可行的!
刚才的想法是错的,比如34,3这种情况就没考虑。
想了挺久还是没想出正确答案,然后看了讨论区的答案。
感觉还是做题做的太少了,或者说C++的知识太弱了,根本不知道sort的这种用法。

class Solution {
public:
    string largestNumber(vector<int>& nums) {
        vector<string> Snums;
        for (auto num : nums) {
            Snums.push_back(to_string(num));
        }
        sort(Snums.begin(), Snums.end(), [](string &s1, string &s2){return s1 + s2 > s2 + s1;});
        string res = "";
        for (auto num : Snums)
            res += num;
        if (res[0] == '0')
            res = "0";
        return res;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,769评论 0 33
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,868评论 0 23
  • LeetCode 179 Largest Number Given a list of non negative ...
    ShuiLocked阅读 673评论 0 0
  • 秋天,天不是那么蓝了,太阳变得有些白白的了,风吹在身上,让人陡然起一种萧瑟之意,天凉得格外早了,下午刚刚过去,来不...
    一枝辛夷阅读 237评论 0 1
  • 今天是开学的日子,在休息了三个月后我的心里平静的没有一丝波澜,一样的起床,刷牙,我妈在不停的催催催,快看看有没有落...
    撄宁要眇阅读 324评论 1 1