把数组排成最小的数

来源:互联网 发布:淘宝推广软件有哪些 编辑:程序博客网 时间:2024/06/06 18:27

题目描述

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

    string PrintMinNumber(vector<int> numbers) {        string ss;        int len = numbers.size();        if(len == 0)            return ss;        sort(numbers.begin(),numbers.end());   //必须先排序        char car[10];        sprintf(car,"%d",numbers[0]);        ss = car;        string first;        string sec;        for(int i = 1;i < len;i++){            char car[10];            sprintf(car,"%d",numbers[i]);   //将int转换成字符串            first = ss + car;            sec = car + ss;            if(first > sec)    //比较第一个字符出结果,第一个字符相同再比较第二个字符                ss = sec;            else                ss = first;        }        return ss;                    }


0 0
原创粉丝点击