【剣指Offer】文字列の並び


タイトルの説明
文字列を入力し、その文字列のすべての配列を辞書順に印刷します.例えば文字列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