ブラシタイトル注:アレイ状に配置された最小数(C ++ &&パイソン)

ブラシタイトルが提供勝:

 

件名の説明:

正の整数の配列を入力して、一緒にスプライスされた番号に配置された全ての数字の配列は、スプライスは最小のすべての番号を印刷することができます。3,32,321入力アレイは} {例えば、3つの数の最小数は321323に配置することができる印刷します。

 

アイデア:

なぜなら、比較のために文字列を一緒にニーズの最初の文字列に番号と比べ、。比較が完了した後、順次出力します。

  • もしAB> BA、その後bより、その
  • AB <BAのAがBよりも小さい場合、
  • Aは、AB = BA Bに等しい場合。

 

知識は加えました:

 

ソート()関数:

ヘッダーファイル:書式#include <アルゴリズム>

関数のプロトタイプ:ソート(first_pointer、N-first_pointer +、CMP)

パラメータの説明:

  • first_poniter:最初のアドレスアレイ
  • first_pointer + N:代表最後のアドレス
  • CMP:ソート機能、デフォルト比較モードを呼び出す埋めることができない、デフォルトでは、個々のニーズの変化に応じてというように降順、昇順です。

 

トピック出典:

C ++:

class Solution {
public:
    string PrintMinNumber(vector<int> numbers) {
        if(!numbers.size())
            return "";
        sort(numbers.begin(), numbers.end(), cmp);
        string res;
        for(int i=0;i<numbers.size();i++)
            res+=to_string(numbers[i]);
        return res;
    }
private:
    static bool cmp(int a,int b){
        string A=to_string(a)+to_string(b);
        string B=to_string(b)+to_string(a);
        return A < B;
    }
};

 

パイソン:

# -*- coding:utf-8 -*-
class Solution:
    def PrintMinNumber(self, numbers):
        # write code here
        if(len(numbers)==0)
            return ''
        compare=lambda a,b:cmp(str(a)+str(b),str(b)+str(a))
        min_string=sort(numbers,cmp=compare)
        return ''.join(str(s) for s in min_string)

 

 

公開された22元の記事 ウォンの賞賛0 ビュー567

おすすめ

転載: blog.csdn.net/SampsonTse/article/details/104050002