Question 2 Generate All Valid Parentheses III

Following up方向

  • 1 括号种类对合法性的影响

Key Point 1: 如何处理合法性?指增加括号种类,不考虑优先级,只考虑合不合法

  • 本质:增加了加右括号的限制(不管有多少种括号,本质不变)

对于只有小括号的题目

  • 加左括号的条件:只要有就能加

  • 加右括号的条件:已经加过的左括号的数量》 已经加过的右括号数量

对于既有小括号,又有中括号的题目

  • 加左括号的条件:只要有就能加

  • 加右括号的条件:不仅加过的我这种左括号得比我这种右括号多,上一个(那么多加过的还open着的左括号呢,我得看看那个最后一次添加的)未匹配中最后一次添加的左括号必须与我同种(match)

  • < ) not OK, (<)> not Ok also !!1

对于这道题,N种括号的题目

  • 加左括号的条件:只要有就能加

  • 加右括号的条件:不仅加过的我这种左括号得比我这种右括号多,上一个(那么多加过的还open着的左括号呢,我得看看那个最后一次添加的)未匹配中最后一次添加的左括号必须与我同种(match)

2 优先级

Key Point 2: 如何处理优先级

本质:增加了加左括号的限制(不管有多少种优先级,本质不变)

  • (< not OK 优先级错误 &&()<> OK

题目引入了优先级:左括号变得不是那么随意 不能有就加了

加左括号的条件:上一个(那么多加过的还openopen着的左括号呢,我得看看那个最后一次添加的)未匹配中最后一次添加的左括号, 必须,大于等于,我现在要加的左括号的优先级

概念:上一个加的左括号 !=上一个未匹配的左括号

Modeling:如何Model括号的优先级: Map +数字

Last updated