文章

37

粉丝

68

获赞

6

访问

7.0k

头像
1185 全排列
综合
发布于2024年3月13日 14:44
阅读数 220

#include <bits/stdc++.h>
#define rep(i, s, e) for (int i = s; i < e; i++)
using namespace std;

string s; // 输入的字符串
vector<bool> used; // 标记某个字符是否已经被使用

// 输出当前字符串的全排列
void dfs(string cur) {
    if (cur.size() == s.size()) {
        cout << cur << endl;
        return;
    }
    // 遍历每个字符,如果该字符还未被使用,则将其加入当前字符串中并继续递归
    rep(i, 0, s.size()) {
        if (!used[i]) {
            used[i] = true;
            dfs(cur + s[i]); //注意这里的参数
            used[i] = false;
        }
    }
}

int main() {
    getline(cin, s); // 输入字符串
    used.resize(s.size(), false); // 初始化标记数组
    dfs("");
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发