文章

14

粉丝

130

获赞

0

访问

699

头像
全排列 题解:DFS自用笔记,带详细注释
P1185 中国矿业大学/北京大学机考题
发布于2024年4月26日 17:56
阅读数 79

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

int card[100];     // 标记手里的字符:0表示此字符还在手里,1表示此字符已出
char res[100];    // 记录字符顺序

void dfs(int step, char* str){   
    int len=strlen(str);
    if(step==len)                // 字符全部出完,那就打印,字符顺序
        cout<<res<<endl;
    for(int i=0;i<len;i++)  
        if(card[i]==0){          // 若字符还在手
            res[step]=str[i] ;   // 1.先将此字符打入当前的0号盒子
            card[i]=1;             // 2.再标记此字符不在手里
            dfs(step+1,str);    // 3.来到下一个盒子面前
            card[i]=0;&nbs...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发