文章
13
粉丝
168
获赞
13
访问
16.2k
#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;
}
登录后发布评论
暂无评论,来抢沙发