zoukankan      html  css  js  c++  java
  • 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 87
    

    Sample Output:

    22932132143287
    
     单独考虑组合为0的情况
     1 #include<iostream>
     2 #include<algorithm>
     3 #include<vector>
     4 #include<string>
     5 using namespace std;
     6 bool cmp(string a, string b){return a+b<b+a;}
     7 int main(){
     8   int n, i;
     9   vector<string> v;
    10   string ans="";
    11   cin>>n;
    12   v.resize(n);
    13   for(i=0; i<n; i++) cin>>v[i];
    14   sort(v.begin(), v.begin()+n, cmp);
    15   for(i=0; i<n; i++) ans+=v[i];
    16   for(i=0; i<ans.size(); i++)if(ans[i]!='0')break;
    17   if(i==ans.size()) cout<<"0";
    18   for(; i<ans.size(); i++) cout<<ans[i];
    19   return 0;
    20 }
    有疑惑或者更好的解决方法的朋友,可以联系我,大家一起探讨。qq:1546431565
  • 相关阅读:
    iptables的例子1
    Nginx教程
    bash编程基础
    centos7 PXE自动安装环境搭建
    矛盾破裂了
    20200823-矩阵的收尾与离散控制的跌跌撞撞
    20200817-三大公式的结束-频域法的再探
    markdown换行
    由二〇二〇新冠疫情引发的对于开源、分享这一理念的看法
    Windows简单使用记录
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9155131.html
Copyright © 2011-2022 走看看