LeetCode Largest Number
2015-07-06 21:47
417 查看
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.
好奇怪这题居然没有记录,不过确实再做跟没做过一样,完全想不出来。。。
class Cmp { public: bool operator() (const string& a, const string& b) { return cmp(a + b, b + a, a.size() + b.size()); } bool cmp(const string a, const string b, int len) { int pos = 0; while (pos < len) { if (a[pos] != b[pos]) { return a[pos] < b[pos]; } pos++; } return false; } }; class Solution { public: string largestNumber(vector<int>& nums) { vector<string> strnums; for (int num : nums) { strnums.push_back(num2str(num)); } sort(strnums.begin(), strnums.end(), Cmp()); string res; int len = strnums.size(); for (int i=len - 1; i>=0; i--) { if (res.size() == 0 && strnums[i][0] == '0') { continue; } res = res + strnums[i]; } if (res.size() == 0) { res = "0"; } return res; } string num2str(int num) { char buf[20] = {0}; sprintf(buf, "%d", num); return string(buf); } };
相关文章推荐
- BusHelper
- 数据在计算机中的存储形式和运算( 原码,反码,补码)&=, |=, >>=, <<=, ∧=
- Ext.Net MVC5 异常记录及解决办法(一)
- 图的深度优先搜索
- Android 增强版百分比布局库 为了适配而扩展
- Xcode安装Cocos2d-iphone
- 【Leetcode Algorithm】Power of Two
- 黑马程序员——Java基础---集合(第18天 )
- S3C2410按键poll
- Qt部件----按钮,标签,表的使用
- android 百分比控件的使用
- Android性能优化--Listview优化
- [工具-006] C#如何模拟发包登录
- Android 进阶学习:Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- ubuntu 15.04 安装配置 JDK1.8
- 连接池
- Android第一次项目-拨打电话
- [Leetcode]Power of Two
- ----------学生信息管理系统-------
- 安装332bit JAVA 后eclipse无法启动 错误代码exit code=13