首页 > 其他 > 详细

Tree Recovery POJ - 2255

时间:2017-11-08 20:35:23      阅读:207      评论:0      收藏:0      [点我收藏+]

Tree Recovery POJ - 2255

根据树的前序遍历和中序遍历还原后序遍历。

(偷懒用了stl的find)

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 string s1,s2;
 5 int len;
 6 void work(int l1,int r1,int l2,int r2)
 7 {
 8     if(l1==r1)
 9     {
10         cout<<s1[l1];
11         return;
12     }
13     if(l1>r1)    return;
14     char ch=s1[l1];
15     int pos=s2.find(ch,l2);
16     int len2=pos-l2+1;
17     work(l1+1,l1+len2-1,l2,pos-1);//l2+pos-l2+1-1=pos
18     work(l1+len2,r1,pos+1,r2);
19     cout<<ch;
20 }
21 int main()
22 {
23     while(cin>>s1>>s2)
24     {
25         len=s1.length();
26         work(0,len-1,0,len-1);
27         cout<<endl;
28     }
29     return 0;
30 }

Tree Recovery POJ - 2255

原文:http://www.cnblogs.com/hehe54321/p/poj-2255.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!