[排序]PAT1038 Recover the Smallest Number
来源:互联网 发布:数据可视化方法 编辑:程序博客网 时间:2024/05/21 06:13
1038. Recover the Smallest Number (30)
Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given {32, 321, 3214, 0229, 87}, we can recover many numbers such like 32-321-3214-0229-87 or 0229-32-87-321-3214 with respect to different orders of combinations of these segments, and the smallest number is 0229-321-3214-32-87.
Input Specification:
Each input file contains one test case. Each case gives a positive integer N (<=10000) followed by N number segments. Each segment contains a non-negative integer of no more than 8 digits. All the numbers in a line are separated by a space.
Output Specification:
For each test case, print the smallest number in one line. Do not output leading zeros.
Sample Input:5 32 321 3214 0229 87Sample Output:
22932132143287
题意:给出多个最长8位的数字,求他们组成的最小数字。
思路:这个想法比较简单了,假设两个数字字符串是str1,str2,直接排序排序规则是 str1+str2<str2+str1,可以得到最小的组合数字,注意要去掉前导0,如果全是0则只留下一个0。
#include<iostream>#include<algorithm>#include<string>using namespace std;string str[10005];bool cmp(string str1,string str2){ return str1+str2<str2+str1;}int main(){ int n,i,k; cin>>n; for(k=0;k<n;k++) { cin>>str[k]; } sort(str,str+n,cmp); int tag=0; for(i=0;i<n;i++) { for(k=0;k<str[i].size();k++) { if(tag==0&&str[i][k]!='0') { cout<<str[i][k]; tag=1; } else if(tag==1) cout<<str[i][k]; } if(tag==1) break; } if(i==n&&tag==0) cout<<"0"; i++; for(i;i<n;i++) cout<<str[i]; cout<<endl; return 0;}
- [排序]PAT1038 Recover the Smallest Number
- pat1038 Recover the Smallest Number
- pat1038. Recover the Smallest Number
- PAT1038. Recover the Smallest Number (30)
- PAT1038 Recover the Smallest Number (30)
- 【PAT1038】Recover the Smallest Number 字符串组合大小
- 1038. Recover the Smallest Number
- PAT_1038: Recover the Smallest Number
- 1038. Recover the Smallest Number
- 1038. Recover the Smallest Number
- 1038. Recover the Smallest Number
- 1038. Recover the Smallest Number
- 1038 Recover the Smallest Number
- Recover the Smallest Number (30)
- 1038. Recover the Smallest Number
- 1038. Recover the Smallest Number
- PAT_1038. Recover the Smallest Number
- Recover the Smallest Number (30)
- poj 2352 Stars(简单树状数组)此题也可以用线段树来做
- 更改myeclipse 背景颜色
- 对SVM的个人理解
- Neutron securitygroup 分析及配置
- wordpress url静态化(url rewrite规则)apache版
- [排序]PAT1038 Recover the Smallest Number
- SVN 上传新文件自动锁设置
- Mysql 5.6 (Master)到5.1主从同步错误[1]
- 详解 HTML5 新特性
- Win7下安装apache服务器
- #ifdef __cplusplus extern C的功能
- java参数后面 跟 三个点 含义 详解
- JDBC/XML
- java简单工厂模式