Python基础入门升级班 第2次课作业 张胜


题目如下:
[ ]对应检查

输入含有[]的字符串,输出对中括号出现规则的检测结果
[] OK ][ NOT OK

[][] OK ][][ NOT OK

[[][]] OK []][[] NOT OK

[[][[]]] OK ][]][[][ NOT OK

解法如下:
str=input("请输入待检测的字符串")
print(str[0])

left_index表示[符号出现的位置

left_index=[]

right_index表示]符号出现的位置

right_index=[]
flag=True
for i in range(len(str)):
    if '['==str[i]:left_index.append(i)
    if ']'==str[i]:right_index.append(i)    
if len(left_index)!=len(right_index):
    flag=False
else:
    for j in range(len(left_index)):
        if left_index.pop(0)>right_index.pop(-1):
            flag=False
if flag==True:print('OK')
else:print('NOT OK')


上面是我个人想到的解法,欢迎大家来找茬(指出不足)。本人刚刚接触Python,希望和大家一起多交流学习
已邀请:

ClownFish

赞同来自:


你的解题思路是记录左右[]出现 的位置。

然后一个一个弹出左边的[,只要出现在]的右边就判定不合法。对吗?

要回复问题请先登录注册

返回顶部