全排列递归

[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 @   lwx_R  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示