把数组排成最小的数——数字转字符串to_string()的用法,sort()的compare函数用法
2017-10-12 21:10
323 查看
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323.
将vector中的数字转化为string类型用于排序,排序规则是如果a+b<b+a,a排在前。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
static bool cmp(int a, int b) {
string A = to_string(a) + to_string(b);
string B = to_string(b) + to_string(a);
return A<B;
}
string PrintMinNumber(vector<int> numbers) {
string answer = "";
sort(numbers.begin(), numbers.end(), cmp);
for (int i = 0; i<numbers.size(); i++) {
answer += to_string(numbers[i]);
}
return answer;
}
int main() {
vector<int> v = { 3,32,321,23 };
string s = PrintMinNumber(v);
cout << s;
return 0;
}
将vector中的数字转化为string类型用于排序,排序规则是如果a+b<b+a,a排在前。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
static bool cmp(int a, int b) {
string A = to_string(a) + to_string(b);
string B = to_string(b) + to_string(a);
return A<B;
}
string PrintMinNumber(vector<int> numbers) {
string answer = "";
sort(numbers.begin(), numbers.end(), cmp);
for (int i = 0; i<numbers.size(); i++) {
answer += to_string(numbers[i]);
}
return answer;
}
int main() {
vector<int> v = { 3,32,321,23 };
string s = PrintMinNumber(v);
cout << s;
return 0;
}
相关文章推荐
- string.ToCharArray() 装字符串的每个字符存入数组
- C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)
- JS的数组转换字符串方法toString、toLocaleString、join和valueOf — 第5.2.1节
- LeetCode #8 String to Integer (atoi) 字符串转数字 解题小节
- LeetCode OJ String to Integer (atoi) 字符串转数字
- string.ToCharArray() 装字符串的每个字符存入数组
- hdu 3374 String Problem kmp+字符串最小表示法+next数组性质
- 字符串数字排序Arrays.sort() Comparator的用法
- string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
- C++ 排序函数 sort(),qsort()的含义与用法 ,字符串string 的逆序排序等
- [C 语言]将一字符串分割,并将结果保存到数组里面 separate_string_to_array
- 高精度运算专题-输出函数与字符串转数字函数(Output function and the string to number function)
- 字符串转成字符数组,同时控制输出字符数——ToCharArray、Response.Write新用法(2006-04-20 15:32)
- 数字转换为字符串:String:convert an int to a string
- 字符串数组 string[] 转换为 字符串(用逗号,作为分隔符),linq Except的用法,linq获取两个字符串数组相同的部分
- JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,
- Android中资源文件中的字符串数组string-array简单用法
- JavaSE8基础 String toCharArray 字符串转换成字符数组
- JavaSE8基础 Arrays.toString 将一维int数组转成字符串输出
- LeetCode OJ 之 String to Integer (atoi字符串转数字)