代码:
#include<bits/stdc++.h>
using namespace std;
char pre[55],in[55];
int n;
int Height(int prel,int prer,int inl,int inr)
{
if(prel>prer)
return 0;
//if(prel==prer)
//return 1;
int m=inl;
while(in[m]!=pre[prel])
m++;
return max(Height(prel+1,prel+m-inl,inl,m-1),Height(prel+m-inl+1,prer,m+1,inr))+1;
}
int main()
{
cin>>n>>pre>>in;
cout<<Height(0,n-1,0,n-1);
}
题目:

还原二叉树(左右子树选最大+1)&spm=1001.2101.3001.5002&articleId=124242492&d=1&t=3&u=4dd595a25d5c420b9a72bd9ae0059b0e)
1183

被折叠的 条评论
为什么被折叠?



