• 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
  • 相关阅读:
    js用8421码实现10进制转2进制
    什么?toggle(fn1, fn2)函数在1.9版本jq被移除? 来来来,自己撸一个
    js获取鼠标点击的对象,点击另一个按钮删除该对象
    html5小结
    iphone状态栏高度?
    制作手机相册 全屏滚动插件fullpage.js
    js 相关知识整理(一)
    css 居中问题
    进度条
    @Html.Raw()
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9155131.html
Copyright © 2020-2023  润新知