dfs算法解决全排列问题

全排列

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

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

string s;
int book[26];

void dfs(int index){
    if(index==s.size()){
        cout<<s;
        cout<<endl;
        return;
    }
    for(int i=0;i<26;i++){
        if(book[i]==1){
            char c = i+'a';
            s[index]=c;
            book[i]=2;
            dfs(index+1);
            book[i]=1;
        }
    }
    return;
}

int main() {
    cin>>s;
    for(int i=0;i<s.size();i++){
        book[s[i]-'a'] = 1;
    }
    dfs(0);
    return 0;
}

全部评论

相关推荐

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