输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。剑指Offer(32)
解题思路:
先两两比较,例如m、n,确定哪个应该排在前面,哪个应该排在后面,比较的规则就是mn与nm哪个更小,利用排序函数将小的数放在字符串数组的前面,最后拼接字符串以输出。(注意大数的问题,因此将数值装换为字符串)
class Solution {
public:static bool compare(const string& s1, const string& s2){string str1 = s1+s2;string str2 = s2+s1;return str1<str2;//自定义比较函数返回小的字符串}string PrintMinNumber(vector<int> numbers) {vector<string> numstr;string res;int num = numbers.size();if(numbers.empty()) return "";for(int i = 0;i<num ;i++){stringstream s; //定义一个字符串流s<<numbers[i]; //加载数组值string tmp = s.str();//再取字符串的,相当于将之前的整型数转化为字符串numstr.push_back(tmp);//压入字符串数组}sort(numstr.begin(),numstr.end(),compare);for(int i= 0;i<num ;++i){res += numstr[i]; }return res; }
};
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。剑指Offer(32)相关推荐
- python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...
从键盘上任意输入一个4位正整数,然后逆序数输出 intmain(){intn,n1,n2,n3,n4;cin>>n;n1=n/1000;n2=(n%1000)/100;n3=(n%100) ...
- python怎么判断一个数是不是正整数_Python如何判断一个正整数是否是素数?
素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则,称为合数(Composite Number).1既不是素数,也不是合数. 如2. ...
- C语言编程>第二周 ⑤ 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
例题:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 代码如下: /*程序分析:利用while语句,条件为输入的字符不为'\n'*/ #include "stdio.h& ...
- php 动态多维数组长度,怎么在php中利用count获取多维数组的长度
怎么在php中利用count获取多维数组的长度 发布时间:2021-01-05 16:38:55 来源:亿速云 阅读:80 作者:Leah 今天就跟大家聊聊有关怎么在php中利用count获取多维数组 ...
- 萌新的Python练习菜鸟100例(十七)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
题目: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 分析: · string模块的使用: 字符串实现了所有一般序列的操作,还额外提供了以下列出的一些附加方法. 字符串还支持两种 ...
- 任何一个正整数都可以用2的幂次方表示
例如:137=2^7+2^3+2^0,约定a^b可表示为a(b),则137可表示为:2(7)+2(3)+2(0),进一步7=2^2+2+2^0,3=2+2^0.所以137最终可以表示为2(2(2)+2 ...
- 如何用matlab找出一组离散数据中的峰值
如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...
- Visual Studio中的第一个Django-Python应用程序
目录 介绍 创建一个项目 添加虚拟环境 结论 介绍 Python是一种非常强大且流行的编程语言,用于机器学习.人工智能.数据科学. 但是,如果您正在考虑使用此python创建一个Web应用程序,它可以 ...
- html拆分单元格成两列,在excel中怎样把一个单元格拆分成两个单元格
excel表格中如何拆分带括号的单元格比如说我有一个表格单元格内容是 :张三李四(000001) 如何将括号内的选中需要拆分的单元格,Ctrl +F把单元格里面的括号或者书名号换成逗号,然后在数据选项 ...
- 蓝桥杯(java)阶乘计算,输入一个正整数n,输出n!的值。(高精度计算,用到数组)
问题描述 输入一个正整数n,输出n!的值. 其中n!=1*2*3*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个大整数a,A[0]表 ...
最新文章
- Sitecore 9 为什么数据驱动的组织选择它
- session 和cookie的理解
- Swagger+Spring mvc生成Restful接口文档
- CF1153F-Serval and Bonus Problem【dp,数学期望】
- 第 7 章 MybatisPlus 插件
- Echo团队Alpha冲刺随笔 - 第八天
- jenkins使用插件OWASP Dependency-Check Plugin对jar包漏洞扫描
- 14.卷1(套接字联网API)---高级IO函数
- Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 54; columnNumbe
- linux dvd 刻录_如何将任何视频文件刻录到可播放的DVD
- android 年月日倒计时,手机日期倒计时
- java中正则验证邮箱手机格式
- 怎么把html改成迅雷bt种子文件格式,BT种子怎么制作?教你如何制作BT种子
- SAP Data Service操作简介
- Android系统启动流程完整分析(一)
- C语言:输入一个数,输出以该值为半径的圆面积,以该值为半径的球体表面积与体积,pi取值3.1415926536.
- 牛客OR36 .链表的回文结构
- 如何在网络上连接另一台计算机,如何通过网络共享连接到另一台电脑?
- 快压 为什么让我如此厌恶
- 如何批量获取网页中的下载链接