精選文章
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
KOTLIN 學習 : LEETCODE Hard 1106. Parsing A Boolean Expression
前篇:KOTLIN 學習 : LEETCODE Easy 2331. Evaluate Boolean Binary Tree
Leetcode 題目 : 1106. Parsing A Boolean Expression
程式:Github
這題挺有意思的, 主要可以分成兩個部分
1. makeTreeNodeFromString()
字串轉換成 AND-OR tree, 但和前題不同的是
- 多元樹 而非 二元樹
- 除了 AND, OR 之外, 還多了 NOT
2. evaluateTree()
這個新的 AND-OR tree 的計算
第二個 計算本身 還蠻好寫的, 如下:
估計這題之所以會變成 Hard, 可能在於
1. 不曉得用 AND-OR tree 來做
2. 字串轉換到 AND-OR tree 的盲點
之所以會說字串轉換的盲點, 在於 字串處理時, 有 逗號 , 和 括號 () ,
並不能單純用逗號分隔就完事了, 也就是說, 逗號可能有不同的層次
所以需要多一個括號的處理
結果:
蠻好的; 最近都顯示 100% beats , 不曉得是否真是如此^^
PS: 題目設計沒有例外, 將來找 bug 例外處理時, 或許可以設計一個好的機制
PS: 和前題一樣, 記錄一下指令:
% kotlinc Solution.kt -include-runtime -d Solution.jar
java -jar Solution.jar







留言
張貼留言