方法一:使用字典
def isValid(s):
c = ['(', '[', '{']
a = {")": "(", "}": "{", "]": "["}
b = [0]
for i in s:
if i in c:
b.append(i)
elif a[i] == b[-1]:
b.pop()
else:
b.append(i)
return b == [0]
print(isValid(input()))
方法二:使用栈
import sys
from collections import deque
def isValid(s):
st = deque() # 定义一个栈
i = 0
while i < len(s):
e = s[i]
if e == '(' or e == '[' or e == '{':
st.append(e) # 将左括号进栈
else:
if e == ')':
if len(st) == 0 or st[-1] != '(':
return False # 栈空或栈顶不是'('返回假
st.pop()
if e == ']':
if len(st) == 0 or st[-1] != '[':
return False # 栈空或栈顶不是'['返回假
st.pop()
if e == '}':
if len(st) == 0 or st[-1] != '{':
return False # 栈空或栈顶不是'{'返回假
st.pop()
i += 1
return len(st) == 0
if __name__ == '__main__':
s = sys.stdin.readline()
print(isValid(s))
该博客介绍了两种检查括号是否有效的方法:一种使用字典,另一种利用栈。通过遍历输入字符串,根据括号的对应关系进行判断,确保每遇到右括号时,其对应的左括号存在于栈中。最后栈为空则表示括号匹配成功。
599

被折叠的 条评论
为什么被折叠?



