题目要求:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
思路:比较经典的用栈解决的问题,首先若字符串为奇数时返回false。当遇到左括号时入栈,当遇到右括号时如果与栈顶元素的左括号相匹配,则将栈顶出栈,否则换回false。如果遍历完了字符串后,栈仍不为空,也返回false。
技巧:匹配左括号时,我们可以入栈右括号,当字符串中出现右括号时我们只需要比较栈顶元素,二者是否相等即可,更加容易。
leetcode实战:
代码实现:
题目要求:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
思路:比较经典的用栈解决的问题,首先若字符串为奇数时返回false。当遇到左括号时入栈,当遇到右括号时如果与栈顶元素的左括号相匹配,则将栈顶出栈,否则换回false。如果遍历完了字符串后,栈仍不为空,也返回false。
技巧:匹配左括号时,我们可以入栈右括号,当字符串中出现右括号时我们只需要比较栈顶元素,二者是否相等即可,更加容易。
leetcode实战:
代码实现: