字符串的排列

include

class Solution {
public:
vector<string> Permutation(string str) {
vector<string>res;
int n = str.length();
if(0 == n)
return res;
string resStr;
string originalStr = str;
help(res, originalStr, 0, originalStr.length()-1);
sort(res.begin(), res.end());
return res;
}
private:
//递归
void help(vector<string>&res, string str, int start, int end)
{
if(start == end)
{
res.push_back(str);
return;
}</string></string></string>

    for(int i = start; i<=end; i++)
    {
        if(i!=start &&str[i] == str[start])
            continue;
        swap(str, start, i); //交换元素
        help(res, str, start+1, end);  //递归下一个元素
        swap(str, start, i);  //恢复交换前状态
    }
}
void swap(string &str, int i, int j)
{
    char temp = str[i];
    str[i] = str[j];
    str[j] = temp;
}

};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务