题解 | #全排列#

全排列

http://www.nowcoder.com/practice/5632c23d0d654aecbc9315d1720421c1

#include <iostream>
#include <vector>
#include <string>
using namespace std;

void backtracking(string s, string path, vector<bool>& used) {
    if (path.size() == s.size()) {
        cout << path << endl;
        return;
    }
    for (int i = 0; i < s.size(); i++) {
        if (!used[s[i]-'a']) {
            used[s[i]-'a'] = true;
            path.push_back(s[i]);
            backtracking(s, path, used);
            path.pop_back();
            used[s[i]-'a'] = false;
        }
    }
}

int main()
{
    vector<bool> used(26, false);
    string s;
    cin >> s;
    backtracking(s, "", used);
    return 0;
}
全部评论

相关推荐

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