把数组排成最小的数

原创 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】把数组排成最小的数

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

把数组排成最小的数以及Java中的Comparable接口

前几天雅虎的笔试题。今天看到了何海涛的blog,上面有写到。苦于不懂c++,看了半天他的代码还查了一下sprintf,才知道是什么意思。 其实大概的思路很简单【为什么当时想出来的办法是错的】。 就...
  • imzoer
  • imzoer
  • 2012年10月01日 20:56
  • 2521

32.把数组排成最小的数

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

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

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

把数组排成最小的数(剑指offer)string+vector

把数组排成最小的数 参与人数:909时间限制:1秒空间限制:32768K通过比例:20.12%最佳记录:0 ms|0K(来自  TOBEORNOTTOBE) 题目描述 输...

剑指Offer面试题33(java版):把数组排成最小的数

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

剑指Offer——(32)把数组排成最小的数

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

剑指offer面试题之把数组排成最小的数

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

剑指Offer(第二版)面试题45:把数组排成最小的数

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

九度oj 1504:把数组排成最小的数 (贪心)

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。       ...
  • wconvey
  • wconvey
  • 2013年06月27日 00:12
  • 686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把数组排成最小的数
举报原因:
原因补充:

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