剑指offer 面试题28 字符串全排列

来源:互联网 发布:php知名开源商城 编辑:程序博客网 时间:2024/05/17 22:03


#include <iostream>using namespace std;void Permutation_core(char *str,char *flag){if(*flag=='\0')cout<<str<<' ';else{for(int i=0;flag[i]!='\0';++i){char tmp=*flag;*flag=flag[i];flag[i]=tmp;Permutation_core(str,1+flag);tmp=*flag;*flag=flag[i];flag[i]=tmp;}}}void Permutation(char *str){if(str==NULL) return;Permutation_core(str,str);}int main(){char str[10]={"abcd"};Permutation(str);}

从n个字符取m个

#include <iostream>#include <cstring>using namespace std;void combination(char *strn,char *strm,int flag,const int m){if(*strn=='\0'||flag==m){if(flag==m){for(int i=0;i<m;++i)cout<<strm[i];cout<<endl;}elsereturn;}else{strm[flag]=*strn;combination(strn+1,strm,flag+1,m);combination(strn+1,strm,flag,m);}}int main(){char strn[]={"asdf"};char strm[strlen(strn)+1];combination(strn,strm,0,2);}

0 0
原创粉丝点击