Parsing A Boolean Expression

題目要求是要輸入一個運算式回傳該運算式的結果 有下列規則 “t”,代表為 True “f”,代表為 False “!(expr)",表示將expr得出的布林值反向 “&(expr1,expr2,…)",表示將所有expr{num}做AND “|(expr1,expr2,…)",表示將所有expr{num}做OR 馬上進入程式碼撰寫的部分,主要是以遞迴解決 我的想法應該算蠻差的,效能那些部分都不能強求,所以僅放上來做參考,歡迎底下討論 class Solution { companion object{ // 運算子列表 val operator = arrayOf('!', '&', '|') } fun parseBoolExpr(expression: String): Boolean { // 如果運算式為空,回傳 `False` if (expression.isEmpty()) return false return expr(expression) } fun expr(expression: String): Boolean{ // 如果運算式的首個元素不包含於運算子列表(!、&、|),回傳 `False` if (!operator.contains(expression[0])) return false // 取得運算子 val mod = expression[0] // 檢查運算子後的下一個字元是否為 `(` val optStart = if(expression[1] == '(') 1 else throw RuntimeException("not valid pattern") // 檢查運算式的最後一個字源是否為 `)` val optEnd = if(expression[expression....

August 3, 2020 · 2 min · Aitay

HelloWorld | JVM

HelloWorld | JVM 因為是部落格上的第一篇,所以想來測試基本語法高亮 首先是Java // 測試Java註解 public static void main(string[] args){ System.out.println("hello world"); } 接下來是Kotlin fun main(){ "hello world".println() } fun String.println(){ println(this) } 最後基本的C語言好了 int main(){ printf("hello world"); return 0; }

August 1, 2020 · 1 min · Aitay