题目1504:把数组排成最小的数
来源:互联网 发布:js的 math.hypot方法 编辑:程序博客网 时间:2024/05/20 13:08
- 题目描述:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- 输入:
输入可能包含多个测试样例。
对于每个测试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
输入的第二行包括m个正整数,其中每个正整数不超过10000000。
- 输出:
对应每个测试案例,
输出m个数字能排成的最小数字。
- 样例输入:
323 13 6223456 56
- 样例输出:
132362345656
/*思路:简单的按字典排序,注意是在cmp函数内,通过字典比较的时候,没分出结果时,我的处理是:string aa = a, bb = b ;aa = a + b ;bb = b + a;if(aa<bb)return true ;elsereturn false ;*/#include<iostream>#include<algorithm>#include<string>#define MAX 102using namespace std ;bool cmp (string a , string b ){int i ;int lena = a.size() , lenb = b.size() , max1 = 0 ;max1 = lena > lenb ? lena : lenb ;for( i = 0 ; i < max1 ; i ++){if(a[i%lena] > b[i%lenb])return false;if(a[i%lena] < b[i%lenb])return true ;}/*按字典比较,没有分出顺序时的处理*/string aa = a, bb = b ;aa = a + b ;bb = b + a;if(aa<bb)return true ;elsereturn false ;}int main(void){int n ;while(cin >> n ){int i ;string a[MAX] ;for(i = 0 ; i < n ; i++)cin >> a[i] ;sort(a , a + n , cmp );for( i = 0 ; i < n ; i++)cout<< a[i];cout<<endl;}return 0 ;}/*3100 1001 1000421001 100112100110 1001*/
- 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数-PAT
- 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数
- 【九度】题目1504:把数组排成最小的数
- 九度 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数
- 题目1504:把数组排成最小的数
- 【OJ题目】把数组排成最小的数
- 算法题目---把数组排成最小的数
- 剑指offer面试题目:把数组排成最小的数
- 【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ
- 九度OJ-题目1504:把数组排成最小的数
- 把数组排成最小的数--总结
- 把数组排成最小的数
- 把数组排成最小的数
- grep 正则表达式小记
- 【leetcode】Maximum Subarray
- Java SE学习笔记-GUI
- c++虚函数表解析
- linux 中删除使用rpm安装的软件包的方法
- 题目1504:把数组排成最小的数
- 客户端往服务器端传送文件
- 数据文件数据存放格式转换实现
- Oracle 利用10053处理不走索引语句一则
- Zepto 点击指定元素以外的地方触发事件
- Windows编程中遇到的问题(王艳平Windows程序设计)
- 每天坚持Crack Code(Day 4)
- Java SE学习笔记-网络编程
- Table Elimination & Anchor modeling