您的位置:首页 > 其它

Tree Recovery-UVA 536

2015-07-19 09:24 387 查看
代码比较简洁,记录一下。
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
using namespace std;

int s1[100],s2[100];

void build(int l1,int r1,int l2,int r2){
if(l2>r2) return;
int root=s1[l1];
int p=l2;
while (s2[p]!=root) p++;
int cnt=p-l2;
build(l1+1, l1+cnt,l2,p-1);
build(l1+cnt+1, r1, p+1, r2);
cout<<(char) root;
}
int main(){
string pre,in;
while (cin>>pre>>in) {
int lenth=pre.size();
for (int i=0; i<lenth; i++) {
s1[i]=pre[i];
s2[i]=in[i];
}
build(0, lenth-1, 0, lenth-1);
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: