Leetcode NO.179 Largest Number
来源:互联网 发布:剑灵可爱召唤捏脸数据 编辑:程序博客网 时间:2024/05/16 23:39
本题题目要求如下:
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.
这题的思路并不难,但是用的挺巧的。。。巧到我没有想到。虽然我也用别的办法解决了。。整体框架就是把给定的vector<int>转化为vector<string>,然后从大到小排序。。。
然后将vector里面的元素依次取出放到需要返回的string里面即可。。
但是这里面涉及一个排序的问题。。我们需要定义一种sort的规则,而不是根据默认排序方法排序。。具体用法可以参考http://www.cplusplus.com/reference/algorithm/sort/
关键在于这个规则的书写,我开始写的非常复杂,把所有问题都考虑到。。。其实可以很巧妙:
<span style="white-space:pre"></span>static bool rule(string str1, string str2) {return (str1 + str2 > str2 + str1); }
全部代码如下:
class Solution {public: string largestNumber(vector<int> &num) { string retVal; vector<string> num_str; for (int i = 0; i < num.size(); ++i) num_str.push_back(to_string(num[i])); sort(num_str.begin(), num_str.end(), rule); for (int i = 0; i < num_str.size(); ++i) retVal.append(num_str[i]); while (retVal[0] == '0' and retVal.length() > 1) retVal.erase(0, 1); return retVal; }private:static bool rule(string str1, string str2) {return (str1 + str2 > str2 + str1); }};
0 0
- Leetcode NO.179 Largest Number
- [leetcode]179 Largest Number
- leetcode 179: Largest Number
- LeetCode(179) Largest Number
- leetcode--179:Largest Number
- [LeetCode 179]Largest Number
- LeetCode(179) Largest Number
- leetcode 179: Largest Number
- [leetcode] 179 Largest Number
- LeetCode 179 Largest Number
- Leetcode.179 Largest Number
- LeetCode 179 Largest Number
- Leetcode 179: largest number
- LeetCode[179] Largest Number
- leetcode 179 largest number
- Leetcode 179 Largest Number
- [Leetcode] #179 Largest Number
- LeetCode 179 Largest Number
- c bit field
- poj 1406 Starship Hakodate-maru 暴力枚举
- Creating objects on stack or heap
- Java基础视频教程第17天_Collections、Arrays、1.5新特性
- 【Unity技巧】Unity中的优化技术
- Leetcode NO.179 Largest Number
- Linux Shell 脚本编程从入门到精通 (笔记1)
- c- structure initialization
- 设计模式之Observer
- Java并发编程实践 重庆大学 学习笔记 I
- How I Became A Madman
- Java最大的优势真的在于跨平台吗?
- 在Virtualbox中的Ubuntu虚拟机中,安装Guest Additions客户端增强包时出错:分配介质 虚拟光盘 xxx\VBoxsGuestAdditions.iso 到虚拟电脑 xxx 失
- [我的翻译]效代码审查:来自前质疑者的9个建议