【剣指Offer】文字列の並び
1127 ワード
タイトルの説明
文字列を入力し、その文字列のすべての配列を辞書順に印刷します.例えば文字列abcを入力すると、文字a,b,cで並べられるすべての文字列abc,acb,bac,bca,cab,cbaが印刷される.説明を入力:
9を超えない文字列を入力します(文字が重複する可能性があります)、文字には大文字と小文字のみが含まれます.
コード実装
next_permutationは文字列を取得する次の辞書ソート紹介アルゴリズムですhttp://www.cnblogs.com/devymex/archive/2010/08/17/1801122.html
文字列を入力し、その文字列のすべての配列を辞書順に印刷します.例えば文字列abcを入力すると、文字a,b,cで並べられるすべての文字列abc,acb,bac,bca,cab,cbaが印刷される.説明を入力:
9を超えない文字列を入力します(文字が重複する可能性があります)、文字には大文字と小文字のみが含まれます.
コード実装
class Solution {
public:
vector<string> Permutation(string str) {
vector<string> r;
if(!str.size()) return r;
sort(str.begin(), str.end());
do {
r.push_back(str);
}
while(next_permutation(str.begin(), str.end()));
return r;
}
};
next_permutationは文字列を取得する次の辞書ソート紹介アルゴリズムですhttp://www.cnblogs.com/devymex/archive/2010/08/17/1801122.html