1323507298
发表于 2018-8-9 19:33:52
VBVCBCVBCVGDFGDFGDFGCCV
小脑斧
发表于 2018-8-17 15:50:09
qq792005991 发表于 2013-3-25 22:46
隐藏内容是源码呢?
是
Ya_Ya
发表于 2018-9-27 09:33:16
查看
creep1997
发表于 2018-10-20 12:33:38
支持小甲鱼
moehhh
发表于 2018-10-28 17:10:48
甲鱼牛逼
ryq
发表于 2018-11-7 14:42:43
学习下小甲鱼老师的精神
jieweilin
发表于 2018-11-10 19:25:32
可见
企鹅君
发表于 2018-11-16 17:12:02
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
冰镇豆沙
发表于 2018-11-19 21:59:27
太好了可以写实验报告了呜呜呜
Kyrie11
发表于 2018-12-3 23:26:19
原来如此。
幻梦凡
发表于 2019-1-16 22:05:03
感谢分享
a1572930214
发表于 2019-2-25 10:00:13
看一下
古章元
发表于 2019-3-15 07:18:27
q
ShaoDaria
发表于 2019-3-17 17:27:05
我想看代码
ziwu
发表于 2019-4-14 09:59:29
不错~~~~~~~~~~~~~~~~~~~~~~~~~
逗你玩儿
发表于 2019-4-24 21:27:33
学习啦!
cwhsmile
发表于 2019-4-29 13:03:55
我又太高看自己了,本以为很简单,结果让自己脑子抽筋了一天才搞定{:10_266:}
#deep是递归深度控制标识,不用改。
def dc(s,deep=0):
#定义一个左括号游标i
i = 0
while True:
#首先检测有没有左括号
if s in ['{','[','(']:
#记录左括号的类型left
left = s
#再新定义一个右括号的游标j
j = i + 1
while True:
#当检测到左括号后紧接着检测右括号
if s in ['}',']',')']:
right = s
#如果右括号也检测到,则检测两个括号是否匹配
if left+right == '()' or left+right == '[]' or left+right == '{}':
#确定匹配后再判断当前递归深度,不是在最外层返回当前的层级长度。
if deep > 0:
return j
#在最外层,把左括号游标定位到当前位置,从当前位置往后再继续检测
i = j
#右括已经找到,退出重新检测左括号
break
else:
#如果左右两括号不匹配则返回False
return False
#没有找到右括号反而找到了左括号,则进入递归。
elif s in ['{','[','(']:
#递归深度加一
deep = deep + 1
#进入递归,返回内层的长度或者返回False
next_back = dc(s,deep)
#退出递归后把深度减一
deep = deep - 1
#返回False说明内层左右括号不匹配,向上一层抛False
if not next_back:
return False
#如果内层括号匹配,则把右括号游标向右移动内层的长度。
else:
j = j + next_back
#没有找到右括号就向右移动游标
j += 1
#判断当前右括号游标是否越界,如果越界说明缺少右括号,向上抛False
if j >= len(s):
return False
#如果在没有左括号的情况下先检测到了右括号则返回False
elif s in ['}',']',')']:
return False
#没有找到左括号就向右移动游标
i += 1
#判断当前左括号游标是否越界,如果越界说明没有左括号,返回True
if i >= len(s):
return True
print(dc(input('请输入带N多个括号的字符串:')))
Crazyjm211
发表于 2019-5-18 20:50:55
k
雷楼某
发表于 2019-9-15 19:28:07
啊啊啊啊啊枚金币咋办
lh1996
发表于 2019-9-16 09:40:28
复