【LeetCode #179】Largest Number 解题报告
2015-06-23 17:40
519 查看
原题链接: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.
Solution:
易忽略全为0的情况
字符串比较算法
tostring()的运用
sort函数
代码:
题目描述:
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.
Solution:
易忽略全为0的情况
字符串比较算法
tostring()的运用
sort函数
代码:
class Solution { public: //比较函数 static bool compare(string s1, string s2) { return (s1 + s2) > (s2 + s1); } string largestNumber(vector<int>& nums) { if(nums.empty()) return ""; vector<string> strNums; vector<int>::const_iterator iter = nums.begin(); while (iter != nums.end()) { //把整形转换成字符串类型 strNums.push_back(to_string((long long)*iter)); iter ++; } //借用sort函数对转换后的数字字符串排序 sort(strNums.begin(), strNums.end(),compare); string res = ""; vector<string>::const_iterator it = strNums.begin(); while(it != strNums.end()) { res.append(*it); it ++; } //输入的非负整数全部为0的情况下,输出一个0 int index = 0; while (index < res.length() && res[index] == '0') index ++; if (index == res.length()) return "0"; return res; } };
相关文章推荐
- C# asp.net 连接Mysql 数据库
- 使用ViewPager和Fragment实现滑动导航
- 解决jfreechart中文乱码,以及字体模糊,设置主题问题
- HIVE使用MYSQL作为METADATA
- Android WebView 开发问题
- 【日常学习】【线性DP】codevs1044 拦截导弹题解
- CAS和Shiro在spring中集成
- web 开发之酷炫--- 酷炫展示
- IOS开发 根据某个日期计算是星期几
- Java OutOfMemory 错误
- 【java设计模式】组合模式
- 我的vimrc,留而利值(不定期更新)
- 如何在IE浏览器中调用未签名ActiveX控件的设置方法
- 中文乱码解决方案
- 使用NSURLProtocol实现UIWebView的离线缓存
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等
- Unity3D插件之NGUI:Lable
- Sublime Text 3中关闭记住上次打开的文件
- 攻城狮的体检
- RememberMe(Shiro)