題目**
給你乙個以字串形式表述的布林表示式,返回該式的運算結果。
有效的表示式需遵循以下約定:
示例 1:
輸入:expression = "!(f)"
輸出:true
示例 2:
輸入:expression = "|(f,t)"
輸出:true
示例 3:
輸入:expression = "&(t,f)"
輸出:false
示例 4:
輸入:expression = "|(&(t,f,t),!(t))"
輸出:false
思路:遞迴
class solution else else if (c == '&') else if (c == '|')
}return false;
}private boolean parseand(string expression)
}return result;
}private boolean parseor(string expression)
}return result;}/*
* 想根據逗號把字串分開,奈何不會正則
* 如 f,&(t,t) 分成f、&(t,t)
* */
private string split(string expression)
string splits = new string[10];
int count = 0;
string subexp = expression;
while (true)
}int rightindex = matchbracket(subexp);
splits[count++] = subexp.substring(0, rightindex + 1);
if (rightindex == subexp.length() - 1)
subexp = subexp.substring(rightindex + 2);
}string ans = new string[count];
system.arraycopy(splits, 0, ans, 0, count);
return ans;
}private int matchbracket(string expression) else if (expression.charat(index) == ')')
index++;
}return index - 1;
}public static void main(string args)
}
1106 解析布林表示式 C
與波蘭表示式類似,利用2個棧,乙個存數字,乙個存運算子。略有不同的是,四則運算都是雙目運算子,每次計算都是彈出2個數字與1個運算子,結果再壓入數字棧中。但是此題的運算子 或與 都是多目運算子,遇到 要一直彈出到 用兩個變數記錄是否出現t或f,對於 只要出現false結果就是false 對於 只要出現...
布林表示式
布林表示式 boolean expression 是一段 宣告,它最終只有true 真 和false 假 兩個取值。從最基本的層次來說,所有的布林表示式,不論它的長短如何,其值只能是true或false。最簡單的布林表示式是等式 equality 這種布林表示式用來測試乙個值是否與另乙個值相同。它可...
翻譯布林表示式
翻譯布林表示式time limit 1000 ms memory limit 65536 kib problem description 大家都學過了布林表示式的翻譯,其中有乙個拉鍊 回填技術,這次我們就練習這個技術。input 多組輸入,每組輸入為一行字串,例如 a b or c d and e ...