expr=input("输入表达式:") #确定表达式
Py_stacka=list() #创建一个栈
Py_stackb=list() #创建一个栈
Py_stackc=list() #创建一个栈
bool1=0
bool2=0
bool3=0
err=""
for c in expr: #遍历expr中的字符,并依次存储到c中
if c=="(":
Py_stacka.append(c) #将左括号入栈
elif c==")":
if not Py_stacka: #如果是空栈
#print ("缺左括号(")
bool1=1
#break #循环提前结束,不执行循环后的else语言
if bool1 != 1:
Py_stacka.pop() #出栈
if c=="[":
Py_stackb.append(c) #将左括号入栈
elif c=="]":
if not Py_stackb: #如果是空栈
#print ("缺左括号[")
bool2=1
#break #循环提前结束,不执行循环后的else语言
if bool2 != 1:
Py_stackb.pop() #出栈
if c=="{":
Py_stackc.append(c) #将左括号入栈
elif c=="}":
if not Py_stackc: #如果是空栈
#print ("缺左括号{")
bool3=1
#break #循环提前结束,不执行循环后的else语言
if bool3 != 1:
Py_stackc.pop() #出栈
else: #循环结束后执行else语句
if bool1==1:
err="缺左括号( "
if bool2==1:
err=err+"且 缺左括号[ "
if bool3==1:
err=err+"且 缺左括号{ "
print(err)
if not Py_stacka and not Py_stackb and not Py_stackc and bool1==0 and bool2==0 and bool3==0: #如果是空栈
print("匹配")
#else:
#print("缺右括号。")
右括号无法匹配。
最新回复