看了好几遍,终于懂了
( 下文所说的下标,以原字符串为主 )
样例1
原字符串 ([()
1. 从左到右扫描右括号, 发现下标为3处有一个右括号 ')',此时字符串为 ([()
2. 与其最近的未匹配的左括号为下标2处的 '(',配对,此时字符串为 ([()
3. 继续扫描,发现没有左括号了,此时字符串为 ([()
4. 为下标为0的未配对字符 '(' 添加一个 ')' 以与其配对,此时字符串为 ()[()
5. 为下标为1的(第4步结果中下标为2的)未配对字符 '[' 添加一个字符 ']' 以与其配对,此时字符串为 ()[]()
6. 输出结果 ()[]()
样例2
原字符串 ([)
1. 从左到右扫描右括号, 发现下标为2处有一个右括号 ')',此时字符串为 ([)
2. 与其最近的未匹配的左括号为下标1处的 '[',无法配对,为其添加一个 '(' 以与其配对,此时字符串为 ([()
3. 继续扫描,发现没有左括号了,此时字符串为 ([()
4. 为下标为0的字符 '(' 添加一个 ')' 以与其配对,此时字符串为 ()[()
5. 为下标为1的(第4步结果中下标为2的)字符 '[' 添加一个字符 ']' 以与其配对,此时字符串为 ()[]()
6. 输出结果 ()[]()
这就是我的理解,希望对你有帮助