首页 > 代码库 > 如何输出字符窜的所有组合
如何输出字符窜的所有组合
例如“abc”输出a,b,c,ab,ac,bc,abc
#include<stdio.h>void DFS(char str[],char ss[],int pos,int cnt,int n){ if(n==pos) { ss[cnt]=‘\0‘; if(cnt!=0) printf("%s\n",ss); return ; } ss[cnt]=str[pos]; DFS(str,ss,pos+1,cnt+1,n); DFS(str,ss,pos+1,cnt,n);}int main(){ char str[]="abc"; char ss[10]; DFS(str,ss,0,0,3); return 0;}
非递归
#include<stdio.h>int main(){ char str[]="abc"; int n=3; char ss[10]; for(int i=1;i<(2<<n-1);i++) { int t=i; int cnt=0; while(t) { int x=t&1; if(x) printf("%c",str[cnt]); t>>=1; cnt++; } printf("\n"); } return 0;}
如何输出字符窜的所有组合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。