zoukankan      html  css  js  c++  java
  • PAT 1038. Recover the Smallest Number

    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
    

    分析
    这题的排序和s1,s2的先后位置有关,蛮好玩的,不多说,上代码就知道了

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    bool cmp(const string& s1,const string& s2){
    	return s1+s2<s2+s1;
    }
    int main(){
        int n;
        cin>>n;
        vector<string> vi(n);
        for(int i=0;i<n;i++)
            cin>>vi[i];
        sort(vi.begin(),vi.end(),cmp);
        string s="";
        for(auto o:vi)
            s+=o;
        int j=0;
        for(;j<s.size();j++)
            if(s[j]!='0') break;
        if(j==s.size()) cout<<0;
        else
        for(;j<s.size();j++)
            cout<<s[j];
        return 0;
    }
    
  • 相关阅读:
    日期组件
    元素的隐藏和显示效果----利用定位
    盒模型
    数组的方法
    instanceof 和 typeof
    Tensorflow训练识别手写数字0-9
    Tensorflow问题集
    win7+vwmare12+centos7网络配制说明
    tesseract-OCR识别汉字及训练
    The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8302004.html
Copyright © 2011-2022 走看看