、安全オファー正の整数配列を証明するために、一緒にステッチアレイは、すべての数字が数並ん[入力]すべての数は、最小のものにスプライシングさすることができるプリントアウト。3,32,321入力アレイは} {例えば、3つの数の最小数は321323に配置することができる印刷します。

タイトル説明

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

思考

アイデア(1):I最初のこぎりこのアイデアは、数字の完全な配列内の配列の対象となり、その後、すべての数字の完全な配列の最小値を取るために比較する;しかし、この方法は時間がかかり、高価なスペースです。コードは使用価値はありません。

アイデア(2):
1-私たちは、文字列変換関数to_stringににint型の配列を置く
ベクトルソート機能中の2-我々は、ソート文字列全体を、これは照合が自分自身を設定する必要です。
ルール:AB <BAは、その後、我々はA <Bと信じていた場合、デジタルAとB、ABとBAとしては、二つの数で配置されます。特定のコードを見てください。
単一の文字列に、3-整列出力文字列。

アイデア(2)コード

class Solution {
public:
   bool comp(const string & s1, const string & s2) {
		string res1, res2;
		res1 = s1 + s2;
		res2 = s2 + s1;
		return res1 < res2;
	}

	string PrintMinNumber(vector<int> numbers) {
		int len = numbers.size();
		string result="";
		vector<string> s;
		for (int i = 0; i < len; i++) {
			string tmp;
			tmp = to_string(numbers[i]);
			s.push_back(tmp);
		}
		sort(s.begin(), s.end(), comp);
		for (int j = 0; j < len; j++) {
			result += s[j];
		}
		return result;
	}
};
公開された57元の記事 ウォン称賛28 ビュー4116

おすすめ

転載: blog.csdn.net/weixin_41747893/article/details/104704182