全排列递归

[http://ybt.ssoier.cn:8088/problem_show.php?pid=1199]()

一本通 1199

#include <iostream>

#include <cstring>
#include <cstdio>

#define maxn 10000005
typedef long long ll;
using namespace std;

char a[100];
int vis[100];
int lc;
void dfs(char ans[],int l){
    if(l==lc){
        
        for(int i=0;i<l;i++){
            cout<<ans[i];
        }
        cout<<endl;
        
        return;
    }else{
        for(int i=1;i<=lc;i++){
            if(vis[i]==0){
                ans[l]=a[i];
            //    cout<<l<<""<<ans[l]<<endl;
                vis[i]=1;
                l++;
                dfs(ans,l);
                l--;
                vis[i]=0;
            }
        }
    }
}
int main(){
    string s;
    cin>>s;
    lc=s.length();
    for(int i=0;i<s.length();i++){
        a[i+1]=s[i];
    } 
    
    memset(vis,0,sizeof(vis));
    char ans[100];
    dfs(ans,0);

    return 0;
}

 

posted @ 2022-02-22 19:54  lwx_R  阅读(18)  评论(0编辑  收藏  举报