题解 | #全排列#

全排列

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

#include <algorithm>
#include <iostream>
using namespace std;
string s;
int n;
int vis[10];
char list[10];
void dfs(int x)
{
    if(x == n)
    {
        for(int i = 0; i < n; i++)
            cout << list[i];
        cout << endl;
        return;
    }
    for (int i = 0; i < n; i++)
    {
        if(!vis[i])
        {
            list[x] = s[i];
            vis[i] = 1;
            dfs(x + 1);
            vis[i] = 0;
        }
    }
}
int main() {
    cin >> s;
    n = s.length();
  	// 方法一:STL
    // do{
    //     cout << s << endl;
    // }while(next_permutation(s.begin(), s.end()));
  	// 方法二:递归
    dfs(0);
}

全部评论

相关推荐

头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务