首页 > 代码库 > 1004 Anagrams by Stack
1004 Anagrams by Stack
考察DFS的应用,用栈描述字符串的变化过程。
1 #include <stdio.h> 2 #include <string.h> 3 int len1,len2; 4 char str1[100],str2[100],stk[100],ans[200]; 5 6 void output(int n){ 7 int i; 8 for(i=0;i<n;i++){ 9 printf("%c ",ans[i]);10 }11 printf("\n");12 }13 14 void go(int in,int out,int p,int top){15 if(top<0)16 return;17 if(in==len1 && out==len2){18 output(p);19 return;20 }21 if(in<len1){22 stk[top]=str1[in];23 ans[p]=‘i‘;24 go(in+1,out,p+1,top+1);25 }26 if(top>0 && out<len2 && stk[top-1]==str2[out]){27 ans[p]=‘o‘;28 go(in,out+1,p+1,top-1);29 stk[top-1]=str2[out];30 }31 }32 33 int main(){34 while(scanf("%s%s",str1,str2)>=0){35 len1=strlen(str1);36 len2=strlen(str2);37 printf("[\n");38 if(len1==len2)39 go(0,0,0,0);40 printf("]\n");41 }42 return 0;43 }
1004 Anagrams by Stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。