TOJ3988-Password(已知二叉树前中序求后序)
题意:已知二叉树前中序求后序
代码:
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<string> #include<iomanip> using namespace std; const int maxn=110; typedef long long ll; char ans[maxn]; int t; void solve(string s1,string s2) { if(s1.length()==0) return; if(s1.length()==1) { ans[t++]=s1[0]; return ; } int tt=s2.find(s1[0]); solve(s1.substr(1,tt),s2.substr(0,tt)); solve(s1.substr(tt+1,s1.length()-tt-1),s2.substr(tt+1,s2.length()-tt-1)); ans[t++]=s1[0]; } int main() { string s1,s2; while(cin>>s1>>s2) { t=0; int len=s1.length(); solve(s1,s2); ans[len]='\0'; cout<<ans<<endl; } system("pause"); return 0; }