1038. Recover the Smallest Number (30)
来源:互联网 发布:股票统计软件手机 编辑:程序博客网 时间:2024/06/13 00:32
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
一开始没有考虑到这种情况,
2 000 001
写出了以下代码:
#include<iostream>#include<algorithm>#include<cstring>using namespace std;string str[10005];int n;bool cmp (string a,string b ){ return a+b<b+a;}int main(){ int t; cin>>n; for (int i=0;i<n;i++) cin>>str[i]; sort(str,str+n,cmp); for(t=0;t<str[0].length()&&str[0].at(t)=='0';t++) continue; for (int i=t;i<str[0].length();i++) cout<<str[0].at(i); for (int i=1;i<n;i++) cout<<str[i]; return 0;}
后来看到朋友这么写:
#include<iostream>#include<algorithm>#include<cstring>using namespace std;string str[10005];string strnum;int n;bool cmp (string a,string b ){ return a+b<b+a;}int main(){ int t; cin>>n; for (int i=0;i<n;i++) cin>>str[i]; sort(str,str+n,cmp); for (int i=0;i<n;i++) strnum+=str[i]; while(strnum[0]=='0'&&strnum.length()>0) strnum.erase(strnum.begin()); if (strnum.length()==0) cout<<0; else cout<<strnum; return 0;}
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)-PAT
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- PAT 1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 【PAT】1038. Recover the Smallest Number (30)
- 1038. Recover the Smallest Number (30)
- 欢迎使用CSDN-markdown编辑器
- I
- 嵌入式每日学习心得2017.07.20
- mysql判断空与0(持续更新中)
- Python 列表list
- 1038. Recover the Smallest Number (30)
- MarkdownPad2的注册码
- Mysql数据库2003解决
- [C++标准模板库:自修教程与参考手册]关于vector
- Leetcode OJ 98 Validate Binary Search Tree [Medium]
- Linux搭建IPSec/IKEv2 VPN服务器及客户端连接教程
- Ubuntu中创建Intellij IDEA快捷方式
- 第一章 创建爬虫常用命令
- 周记--听平凡人说故事