|
10鱼币
s = input("请输入测试字符串:")
b = []
for i in s:
if i in ['(',')','[',']','{','}']:
if i == "(" or "[" or "{":
b.append(i)
elif i ==")" and b[-1]=="(":
b.pop()
elif i =="]" and b[-1]=="[":
b.pop()
elif i =="}" and b[-1]=="{":
b.pop()
if b ==[]:
print("合法!")
else:
print("不合法!")
要求
1.字符串仅包含 '('、')'、'['、']'、'{'、'}' 这三对括号的组合
2.左右括号必须成对编写,比如 "()" 是合法的,"(" 则是非法的
3.左右括号必须以正确的顺序闭合,比如 "{()}" 是合法的,"{(})" 则是非法的
两个问题。
第二个if的两个or写法不对
末尾的if…else…层次不对
- s = input("请输入测试字符串:")
- b = []
- for i in s:
- if i in ['(',')','[',']','{','}']:
- if i == "(" or i =="[" or i =="{":#这里写的不对
- b.append(i)
- elif i ==")" and b[-1]=="(":
- b.pop()
- elif i =="]" and b[-1]=="[":
- b.pop()
- elif i =="}" and b[-1]=="{":
- b.pop()
- if b ==[]:#这里层次不对,不应该在for里面
- print("合法!")
- else:
- print("不合法!")
复制代码
|
最佳答案
查看完整内容
两个问题。
第二个if的两个or写法不对
末尾的if…else…层次不对
|