考察DFS的应用,用栈描述字符串的变化过程。
#include <stdio.h> #include <string.h> int len1,len2; ],str2[],stk[],ans[]; void output(int n){ int i; ;i<n;i++){ printf("%c ",ans[i]); } printf("\n"); } void go(int in,int out,int p,int top){ ) return; if(in==len1 && out==len2){ output(p); return; } if(in<len1){ stk[top]=str1[in]; ans[p]='i'; go(,,top+); } && ]==str2[out]){ ans[p]='o'; go(,p+,top-); stk[top-]=str2[out]; } } int main(){ ){ len1=strlen(str1); len2=strlen(str2); printf("[\n"); if(len1==len2) go(,,,); printf("]\n"); } ; }