您的位置:首页 > 其它

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

2019-06-30 00:23 162 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41514090/article/details/94229795

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: