剑指offer 编程题(31):把数组排成最小的数返回string
来源:互联网 发布:怎么查网络丢包率 编辑:程序博客网 时间:2024/06/05 03:34
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
class Solution {public: static bool compare( const string &st1,const string &st2) { string s1 = st1+st2; string s2 = st2+st1; return s1<s2; } string PrintMinNumber(vector<int> numbers) { string res; if(numbers.size() <= 0) { return res; } vector<string> str; for (auto c : numbers) str.push_back(std::to_string(c)); sort(str.begin(), str.end(),compare); for (auto s : str) res += s; return res; }};
int cmp(int a, int b){ stringstream s1, s2; s1 << a << b; s2 << b << a; return s1.str() < s2.str();}class Solution {public: string PrintMinNumber(vector<int> numbers) { stringstream ss; sort(numbers.begin(), numbers.end(), cmp); for(auto num : numbers) ss << num; return ss.str(); }};
class Solution {public: string PrintMinNumber(vector<int> numbers) { if (numbers.empty()) return ""; vector<string> str; str.resize(numbers.size()); for (auto c : numbers) str.push_back(std::to_string(c)); std::sort(str.begin(), str.end(), [](string a, string b){return a + b < b + a;}); string result; for (auto s : str) result += s; return result; }};
class Solution {public: static bool compare(int a, int b) { string A = ""; string B = ""; A += to_string(a); A += to_string(b); B += to_string(b); B += to_string(a); return A < B; } string PrintMinNumber(vector<int> numbers) { string ans = ""; sort(numbers.begin(), numbers.end(), compare); for (int i = 0; i < numbers.size(); i++) { ans += to_string(numbers[i]); } return ans; }};
class Solution {public: static bool compare(int a,int b) { string s1; string s2; s1.append(to_string(a)); s1.append(to_string(b)); s2.append(to_string(b)); s2.append(to_string(a)); return s1<s2; } string PrintMinNumber(vector<int> numbers) { string result; sort(numbers.begin(),numbers.end(),compare); for(int i=0;i<numbers.size();++i) { result.append(to_string(numbers[i])); } return result; }};
阅读全文
0 0
- 剑指offer 编程题(31):把数组排成最小的数返回string
- 剑指offer(34):把数组排成最小的数
- 剑指offer(29)-把数组排成最小的数
- 剑指offer:把数组排成最小的数(java)
- 剑指offer-把数组排成最小的数(Java)
- 把数组排成最小的数(剑指Offer)
- 把数组排成最小的数(剑指offer)string+vector
- 【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ
- 《剑指offer》刷题笔记(时间效率):把数组排成最小的数
- 剑指offer第32题(把数组排成最小的数)
- 剑指offer-33:把数组排成最小的数
- 剑指offer:把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- 【剑指offer】Q33:把数组排成最小的数
- 九度《剑指offer》把数组排成最小的数
- 剑指Offer之把数组排成最小的数
- 剑指offer系列源码-把数组排成最小的数
- 剑指offer 33 把数组排成最小的数
- linux安装常用软件(二)
- Mybatis+mySQL动态分页查询数据经典案例
- POJ P1422 Air Raid
- 【算法】大数据与空间限制
- 使用yii AR 完成单个表的CURD操作
- 剑指offer 编程题(31):把数组排成最小的数返回string
- 数据结构实验之排序三:bucket sort
- 第一次使用GIT,创建仓库并提交项目代码
- 死锁
- 图解http笔记-3(HTTP状态码)
- 懒加载常用的两种方式
- Ubuntu16.04安装Hadoop2.7.5教程
- Android 微信登陆的坑
- (洛谷 2758)编辑距离