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

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

    string.append 在末尾添加string或char。string.compare,逐个比较,abcd>ab;

    思路:先讲num转化为string。之后对于string的比较,str1+str2<str2+str1;将其排序即可。对于num转string,用stringstream。

    另一种写法,string *str=new string[n],string数组

     1 class Solution {
     2 public:
     3     string PrintMinNumber(vector<int> numbers) {
     4        
     5         int n=numbers.size();
     6         string res;
     7         if(n<1) return res;
     8         vector<string> str;
     9         string tmp;
    10         for(int i=0;i<n;i++){
    11             stringstream stream;
    12             stream<<numbers[i];
    13             stream>>tmp;
    14             str.push_back(tmp);
    15             stream.clear();
    16         }
    17         for(int i=0;i<n-1;i++){
    18             for(int j=0;j<n-1-i;j++){
    19                 if(compare(str[j],str[j+1]))
    20                     swap(str[j],str[j+1]);
    21             }
    22         }
    23         for(int i=0;i<n;i++)
    24             res+=str[i];
    25         return res;
    26     }
    27 private:
    28     bool compare(string str1,string str2){
    29         string tmp1=str1.append(str2);
    30         string tmp2=str2.append(str1);
    31         if(tmp1.compare(tmp2)>0)
    32             return true;
    33         return false;
    34     }
    35 };
  • 相关阅读:
    linux下activemq安装
    java 线程方法join
    创建线程池
    游标储存过程
    返回结果集的储存过程
    linux 安装 reids 出错解决问题
    IDEAL 集成 jFINAL 问题
    oracle 游标
    oracle procedures
    Linux下安装Tomcat服务器
  • 原文地址:https://www.cnblogs.com/zl1991/p/4775356.html
Copyright © 2011-2022 走看看