记录LeetCode刷题过程
判断括号的有效性可以使用栈
这一数据结构
遍历给定的字符串s,当遇到左括号时,在后面应当有一个对用的右括号使其闭合,并且最后一个左括号应该当先被对应的右括号匹配,最后的先被匹配
与栈
这一数据结构的特性吻合
解题思路:
遍历给定的字符串schar curChar = s.charAt(i)
- 当遇到左括号时,将对应的右类型括号压栈
stack.push(curChar)
; - 当遇到右类型括号时
- 如果栈为空,说明没有对应的左类型括号,输出结果括号不匹配
- 如果栈不为空,进行出栈操作
stackChar = stack.pop()
- 如果出栈字符stackChar与curChar不一致,输出结果括号不匹配
- 如果出栈字符stackChar与curChar一致,再次判断下一个字符,直到结束
- 最后判断栈是否为空
- 栈为空,说明括号全部匹配,输出结果括号匹配
- 栈不为空,说明有不匹配的括号,输出结果括号不匹配