Parentheses问题
题型
- 括号匹配:遇到'('就直接stack.push()或者count++就好,具体的validity checking逻辑都发生在')'上面。如果左边还有,那就是stack.pop()或者count--。如果没有,那么说明包含当前')'的string一定无法是valid parentheses。最后还要补刀,如果count != 0或者!stack.isEmpty(),那么说明整个string也不是valid。
题目
括号匹配问题 (核心思想是用stack)
- Remove Invalid Parentheses, Return Any Valid One (Facebook店面)
- Leetcode 20. Valid Parentheses
- Leetcode 32. Longest Valid Parentheses (这道题的核心是做一个two-pass扫描,因为one-pass无法应对"()(()"这种情况)
BFS
- Leetcode 301. Remove Invalid Parentheses