タイトル説明
正の整数の配列を入力して、一緒にスプライスされた番号に配置された全ての数字の配列は、スプライスは最小のすべての番号を印刷することができます。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;
}
};