把数组排成最小的数

原创 2016年05月30日 16:54:59


把数组排成最小的数

题目描述

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
class Solution {
public:
    static bool cmp(string a,string b)  
    {  
		string s1=a+b;
        string s2=b+a;
        return s1<s2;  
    }  
    string PrintMinNumber(vector<int> numbers) {
        string result;
        if(numbers.size()<=0){
            return result;
        }
        vector<string> strnum;
        
        
        string s;
        stringstream ss;
        for(auto i : numbers){
            
            ss<<i;
            ss>>s;
            ss.clear();
            strnum.push_back(s);
        }
        sort(strnum.begin(),strnum.end(),cmp);
        
        for(auto j : strnum)
            result += j;
        return result;
    }
};

一个是 int 到 string 方法,第一次用stringstream

stringstream ss;

int i = 123456;

ss<<i;

string s;

ss >> s;

ss.clear();


一个是sort 用自己写的比较函数

http://blog.csdn.net/zzzmmmkkk/article/details/4266888/

    static bool cmp(string a,string b)  
    {  
		string s1=a+b;
        string s2=b+a;
        return s1<s2;  
   <span style="font-family: Arial, Helvetica, sans-serif;"> }  </span>
sort(strnum.begin(),strnum.end(),cmp);


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

码农小汪-剑指Offer之30 -把数组排成最小的数(拼接字符串排序)

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

把数组排成最小的数

输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 分析:这...

算法题37 把数组排成最小的数

题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。
  • wcyoot
  • wcyoot
  • 2011-05-22 04:18
  • 1497

剑指offer——把数组排成最小的数

题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:根据结果...

把数组排成最小的数

问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,求所有数字中的最小一个.   详细代码如下: int compare(const void* strNumber1, const vo...

【剑指offer】把数组排成最小的数

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

解题笔记(25)——把数组排成最小的数

问题描述:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。...

把数组排成最小的数

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

剑指Offer_32_把数组排成最小的数

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

把数组排成最小的数

输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 首...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)