zoukankan      html  css  js  c++  java
  • 剑指OFFER之把数组排成最小的数

    题目描述:

    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

     

    输入:

    输入可能包含多个测试样例。
    对于每个测试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数。
    输入的第二行包括m个正整数,其中每个正整数不超过10000000。

     

    输出:

    对应每个测试案例,
    输出m个数字能排成的最小数字。

     

    样例输入:
    3
    23 13 6
    2
    23456 56
    样例输出:
    13236
    2345656

    Code:
    #include <iostream>
    #include <string>
    #include <algorithm>
     
    using namespace std;
     
    bool cmp(string str1,string str2){
        string tmpStr1=str1+str2;
        string tmpStr2=str2+str1;
        return tmpStr1<=tmpStr2;
    }
     
    int main()
    {
        const int arrSize=110;
        string arr[arrSize];
        int length;
        while(cin>>length){
            for(int i=0;i<length;++i){
                cin>>arr[i];
            }
            sort(arr,arr+length,cmp);
            for(int i=0;i<length;++i){
                cout<<arr[i];
            }
            cout<<endl;
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 1504
        User: lcyvino
        Language: C++
        Result: Accepted
        Time:220 ms
        Memory:1528 kb
    ****************************************************************/
  • 相关阅读:
    分布式哈希和一致性哈希算法
    消息队列rabbitmq的五种工作模式(go语言版本)
    Mysql查询缓存
    数据库的三大设计范式
    二叉树的常见算法
    消息队列选型分析
    Mysql防止索引失效原则
    Mysql索引优化单表、两表、三表实践
    数据结构 【栈与队列】
    谷歌实用插件
  • 原文地址:https://www.cnblogs.com/Murcielago/p/4202725.html
Copyright © 2011-2022 走看看