程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個布爾表達式和一個期望的布爾結果 result,布爾表達式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符號組成。
實現一個函數,算出有幾種可使該表達式得出 result 值的括號方法。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/boolean-evaluation-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 區間DP解題
- dp?[i][j] 表示 區間[i,j]內運算值為 ?(0 or 1) 的方案數
- 初始化,每個數字處dp?[i][i]=1, if s[i]==?
- 然后按長度len遞增,求解dp[i][i+len]
- dp[i][i+len]的求解可以根據其內部左右兩側的方案乘積得出
- 所以分成兩部分dp[i,j],dp[j+2][i+len],遍歷所有的j,j+1處為運算符
- 然后根據運算符的三種可能,討論0,1的結果,累加即可
8 ms 7 MB
總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: seaborn绘图入门1(lineplo
- 下一篇: LeetCode 251. 展开二维向量