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;
    }
    
  • 相关阅读:
    tp5中调用接口api中的数据
    TP5.0如何转换成SQL语句输出构造器里面的方法
    unlink() 函数删除文件。
    tp5 图片上传
    Java第十一章多线程
    Java Character类
    前端技术学习路线及技术汇总
    Web发展史
    HTML
    JavaNumber类&JavaMath类
  • 原文地址:https://www.cnblogs.com/A-Little-Nut/p/8302004.html
Copyright © 2011-2022 走看看