Completed
Jan 2, 2025
标签
栈
字符串
相关企业
难度
简单
- 题目描述:给定一个只包括(){}[]的字符串,判断字符串是否有效。即右括号的左边必须有一个左括号与其对应。可以先完成LC1047再来看本题,更容易理解
- 代码思路:使用一个栈,遍历每个字符,如果是左括号则直接入栈,如果是右括号,判断栈的peek位是否匹配。如果匹配则将peek位出栈,类似消消乐,避免其影响后续判断。最后栈为空则说明全部消完了,则返回true,否则返回false
栈为空的话直接加入,如果加入的是右括号,则必不可能被消掉,所以可以在这里进一步优化,判断如果是右括号则直接返回false。
栈不为空,如果是右括号则进行匹配,如果是左括号则直接加入

