在LintCode上碰到了一题largest-number
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。
样例
给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。
九章算法找到的Solution如下
#include
bool cmp(const string s1, const string s2) {
return (s1 + s2) > (s2 + s1);
}
class Solution {
public:
/**
*@param num: A list of non negative integers
*@return: A string
*/
string largestNumber(vector &num) {
// write your code here
vector s_num(num.size());
stringstream stream;
for (int i = 0; i < num.size(); ++i) {
stream << num[i];
stream >> s_num[i];
stream.clear();
}
sort(s_num.begin(), s_num.end(), cmp);
string tmp_res;
for (int i = 0; i < s_num.size(); ++i) {
tmp_res += s_num[i];
}
string res;
bool flag = false;
for (int i = 0; i < tmp_res.size(); ++i) {
if (tmp_res[i] != '0') {
res.push_back(tmp_res[i]);
flag = true;
} else if (flag) {
res.push_back(tmp_res[i]);
}
}
if (!flag) res.push_back('0');
return res;
}
};
在设flag得到res那部分没看明白,
能给讲解下吗
相关阅读:
数据删除问题?
微信、支付宝的支付相关问题?
JavaScript 一个网页中可以有几个
mongodb的java开发中无法创建collection是什么原因?
前后端通信安全策略
有没有webpack的中文文档
百度地图怎样将两个地图关联起来(同步),高德也行
vuerouter的问题,单页刷新或者直接输入路径不触发 beforeEach
关于GitLab的一些问题
android中http和socket请求超时的问题
js Array sort的问题
centos 6.5图形界面登陆不进去了,是否成了肉鸡?
[求助]nodejs中如何将一个文件转为Blob binary data
Node.js中如何解决多层回调?
一个关于Laravel和ReactJS的设计问题
mongodb-mms 无法启动
异步修改页面,该页面需要跳转多个地方,如何保存?
koa怎么把co到数据放到响应体返回前台呢?
创建一个异步任务,每隔一秒打印当前时间,大家分析下这两种实现的异同吧,也可以说说自己的实现方案
RESTful中登录接口怎么命名呢?