学习Leetcode-有效的括号。
数据结构中的栈,特性为后入先出。最后进入栈的元素将位于栈顶。
栈有两个基础操作,pop和push。Push将元素压到栈顶,pop将栈顶元素从栈弹出。
使用python进行栈操作
如果我们把一个python列表看作一个栈,且列表末尾为栈顶。那么我们可以使用list.append来为实现push操作(为栈顶添加元素)。使用内置的pop函数来弹出栈顶元素。
基本思路:每遇到一个左括号就将其压入栈,每遇到一个右括号就和栈顶元素匹配,如果匹配成功则栈顶元素弹出。判断结果为:当循环完成时,栈为空,则返回True,否则返回False。
def isValid(s: str) -> bool:
pairs = {
")": "(",
"]": "[",
"}": "{",
}
stack = []
for i in range(len(s)):
if s[i] in pairs:
if not stack or stack[-1] != pairs[s[i]]:
return False
stack.pop()
else:
stack.append(s[i])
if not stack:
return True
else:
return False