剣指offer-面接問題:文字列の配列


文字列を入力し、その文字列のすべての配列を辞書順に印刷します.例えば文字列abcを入力すると、文字a,b,cで並べられるすべての文字列abc,acb,bac,bca,cab,cbaが印刷される.
説明を入力:
       ,     9(       ),          。

考え方:このテーマには重複する数字がある可能性があることに注意してください.例えば、aaの配列は[aa]で、[aa,aa]ではありません.だから、再帰する時に判断する必要があります.また、牛客ojを通過するには、出力をソートする必要があります.この結果はソートの結果と比較されると判断されるからです.
class Solution {
public:
    void dfs(string str,int begin,vector &res)
    {
        if(begin==str.size()-1) res.push_back(str);
        for(int k=begin;k Permutation(string str) {
        if(str.empty()) return {};
        vector res;
        dfs(str,0,res);
        sort(res.begin(),res.end());  //       
        return res;
    }
};