LeetCode每日一题——T20. 有效的括号(易):栈、哈希表

此题用到栈先进后出的特点进行求解,求解思路可参考下列链接,十分巧妙:
官方求解思路

class Solution:
    def isValid(self, s: str) -> bool:
        _dict = {'{':'}', '[':']', '(':')'}     # 创建hash表,表示左右括号的对应关系
        stack = []
        for char in s:
        	# 当栈非空,且栈顶元素为左括号,且char为栈顶元素对应的右括号时,删除栈顶元素
            if stack and stack[-1] in _dict.keys() and char == _dict[stack[-1]]:   
            #  _dict.key 以列表形式返回一个字典所有的键:{, [, (
                stack.pop()
        	# 否则将char添加到栈顶
            else:
                stack.append(char)
        return not stack