原本想法1

基于贪心,先从左到右把 ) 能消全消,那么 stack 里面只剩下了 (. 那么后面怎么做呢?stack里的(又该如何判断呢? — 无解思路

想法2

把锁住的消掉。这是基于以下几个思想:

  1. 非偶数串一定不valid
  2. 锁在头) 或尾( 一定不valid
  3. 如果没锁,那么偶数串一定valid
  4. 消锁无需在意没锁. 对于任意两锁点 i, j 如果他们是一对,且中间都是没锁的情况下: 1. j - i - 1是偶数,则无需在意; 2. 奇数,则可以寻找外部一非锁点进行配对
  5. 如果不是一对则根据 () 来从头和从尾判断是否有unlock值以供转换