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;
}

 

posted on 2021-01-23 18:49  mmn  阅读(86)  评论(0编辑  收藏  举报