時間限制:10000ms
單點時限:1000ms
記憶體限制:256mb
描述在參與過了美食節之後,小hi和小ho在別的地方又玩耍了一陣子,在這個過程中,小ho得到了乙個非常有意思的玩具——一棵由小球和木棍連線起來的二叉樹!
小ho對這棵二叉樹愛不釋手,於是給它的每乙個節點都標記了乙個標號——乙個屬於a..z的大寫字母,並且沒有任意兩個節點的標號是一樣的。小hi也瞅準了這個機會,重新鞏固了一下小ho關於二叉樹遍歷的基礎知識~就這樣,日子安穩的過了兩天。
這天,小ho正好在求解這棵二叉樹的前序、中序和後序遍歷的結果,但是卻在求出前序遍歷和中序遍歷之後不小心把二叉樹摔到了地上,小球和木棍等零件散落了一地!
小ho損失了心愛的玩具,正要嚎啕大哭起來,所幸被小hi發現了,勸說道:「別著急,這不是零件都還在麼?拼起來不就是了?」
「可是我忘記了二叉樹長什麼樣子了!」小ho沮喪道。
「這個簡單,你不是剛剛求出了這棵二叉樹的前序和中序遍歷的結果麼,利用這兩個資訊就可以還原出整棵二叉樹來哦!」
「這樣麼?!!」小ho止住了淚水,問道:「那要怎麼做呢?」
沒錯!小ho在這一周遇到的問題便是:給出一棵二叉樹的前序和中序遍歷的結果,還原這棵二叉樹並輸出其後序遍歷的結果。
輸入每個測試點(輸入檔案)有且僅有一組測試資料。
每組測試資料的第一行為乙個由大寫英文本母組成的字串,表示該二叉樹的前序遍歷的結果。
每組測試資料的第二行為乙個由大寫英文本母組成的字串,表示該二叉樹的中序遍歷的結果。
對於100%的資料,滿足二叉樹的節點數小於等於26。
輸出對於每組測試資料,輸出乙個由大寫英文本母組成的字串,表示還原出的二叉樹的後序遍歷的結果。
樣例輸入
ab樣例輸出ba
ba比賽已經結束,去題庫提交。
根據定義分解原為題為兩個子問題求解即可。
前序:根左右
中序:左根右
後續:左右根
根據前序確定根節點的位置,然後根據中序去頂左子樹大小。分別找到左右子樹根的位置,遞迴求解。
#include#include#includeusing namespace std;
#define ll long long
#define sca(x) scanf("%d",&x)
int sz;
char s[30],s1[30];
void pri(int l,int r,int root)
int j=l;
int cnt=0;
while(s1[j]!=s[root]&&j<=r)j++,cnt++;
pri(l,j-1,root+1);
pri(j+1,r,root+cnt+1);
printf("%c",s1[j]);
}int main()
/*abdeghcfij
dbgehacijf
*/
hiho一下 第六十周
給定只包含字母的兩個字串a,b,求a,b兩個字串的最長公共子串行,要求構成子串行的子串長度都必須大於等於3。比如 abcdefghijklmn 和 ababceghjklmn 其最長滿足題意要求的子串行為 abcjklmn 其由公共子串 abc 和 jklmn 組成。這裡我們要注意子串和子串行的區別...
hiho一下 第二週
題目名稱 trie樹 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一本詞典,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能對於每乙個我給出的字串,都在這個詞典裡面找到以這個字串開頭的所...
hiho一下第143周
題目1 hiho密碼 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 小ho根據最近在密碼學課上學習到的知識,開發出了一款hiho密碼,這款密碼的秘鑰是這樣生成的 對於一種有n個字母的語言,選擇乙個長度為m的單詞 將組成這個單詞的所有字母按照順序不重複的寫出 即遇到相...