PAT 1038. Recover the Smallest Number (30) 字符串大小比较
2017-08-28 21:14
281 查看
1038. Recover the Smallest Number (30)
时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueGiven 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 ordersof 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
想了半天没想明白怎么判断两个字符串的排序关系,比如 578和5781这种。看了人家的比较,拍案叫绝。
附上我的代码
#include<string>#include<stdio.h>#include<iostream>#include<string.h>#include<queue>#include<algorithm>using namespace std;bool cmp1(string x,string y){string xy="";string yx="";xy+=x;xy+=y;yx+=y;yx+=x;return xy<yx;}int main(){int n;cin>>n;string aa[10005];for(int i=0;i<n;i++)cin>>aa[i];sort(aa,aa+n,cmp1);string last="";for(int i=0;i<n;i++)last+=aa[i];int p=0;while(last[p]=='0') p++;if(p==last.size()) cout<<'0';elsefor(;p<last.size();p++)cout<<last[p];return 0;}
相关文章推荐
- java 中List<String> 数字型字符串比较大小并排序----转自百度知道
- js字符串类型的数字比较的大小
- Oracle 字符串比较大小
- js,jquery的数字型字符串变量比较大小
- iOS客户端学习-字符串比较大小
- c++字符串比较大小的两种方法
- 字符串比较大小
- [转]JavaScript 数字与字符串 比较大小
- Java字符串转换为日期和时间比较大小
- 使用字符串比较两个时间的大小
- javascript中的字符串数字比较大小的问题
- Java字符串转换为日期和时间比较大小
- 字符串的大小比较(某公司校园招聘面试试题)
- 规则字符串大小比较?
- Js、Jquery字符串数字比较大小。
- linq 字符串比较大小
- JavaScript-数字和字符串比较大小
- java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】
- memcpy函数比较字符串前几个字符ascii值得大小
- Shell脚本 字符串大小比较 字符串是否相等比较 字符串是否为空判断