鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[技术交流] 括号匹配(栈的应用)

  [复制链接]
发表于 2018-8-9 19:33:52 | 显示全部楼层
VBVCBCVBCVGDFGDFGDFGCCV
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 15:50:09 | 显示全部楼层
qq792005991 发表于 2013-3-25 22:46
隐藏内容是源码呢?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-27 09:33:16 | 显示全部楼层
查看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-10-20 12:33:38 | 显示全部楼层
支持小甲鱼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-28 17:10:48 | 显示全部楼层
甲鱼牛逼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-7 14:42:43 | 显示全部楼层
学习下小甲鱼老师的精神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-10 19:25:32 | 显示全部楼层
可见
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-16 17:12:02 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-19 21:59:27 | 显示全部楼层
太好了可以写实验报告了呜呜呜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-3 23:26:19 | 显示全部楼层
原来如此。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-16 22:05:03 | 显示全部楼层
感谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-25 10:00:13 | 显示全部楼层
看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 07:18:27 | 显示全部楼层
q
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-17 17:27:05 | 显示全部楼层
我想看代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 09:59:29 | 显示全部楼层
不错~~~~~~~~~~~~~~~~~~~~~~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-4-24 21:27:33 | 显示全部楼层
学习啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-29 13:03:55 | 显示全部楼层
我又太高看自己了,本以为很简单,结果让自己脑子抽筋了一天才搞定
  1. #deep是递归深度控制标识,不用改。
  2. def dc(s,deep=0):
  3.     #定义一个左括号游标i
  4.     i = 0
  5.     while True:
  6.         #首先检测有没有左括号
  7.         if s[i] in ['{','[','(']:
  8.             #记录左括号的类型left
  9.             left = s[i]
  10.             #再新定义一个右括号的游标j
  11.             j = i + 1
  12.             while True:
  13.                 #当检测到左括号后紧接着检测右括号
  14.                 if s[j] in ['}',']',')']:
  15.                     right = s[j]
  16.                     #如果右括号也检测到,则检测两个括号是否匹配
  17.                     if left+right == '()' or left+right == '[]' or left+right == '{}':
  18.                         #确定匹配后再判断当前递归深度,不是在最外层返回当前的层级长度。
  19.                         if deep > 0:
  20.                             return j
  21.                         #在最外层,把左括号游标定位到当前位置,从当前位置往后再继续检测
  22.                         i = j
  23.                         #右括已经找到,退出重新检测左括号
  24.                         break
  25.                     else:
  26.                         #如果左右两括号不匹配则返回False
  27.                         return False
  28.                 #没有找到右括号反而找到了左括号,则进入递归。
  29.                 elif s[j] in ['{','[','(']:
  30.                     #递归深度加一
  31.                     deep = deep + 1
  32.                     #进入递归,返回内层的长度或者返回False
  33.                     next_back = dc(s[j:],deep)
  34.                     #退出递归后把深度减一
  35.                     deep = deep - 1
  36.                     #返回False说明内层左右括号不匹配,向上一层抛False
  37.                     if not next_back:
  38.                         return False
  39.                     #如果内层括号匹配,则把右括号游标向右移动内层的长度。
  40.                     else:
  41.                         j = j + next_back
  42.                 #没有找到右括号就向右移动游标
  43.                 j += 1
  44.                 #判断当前右括号游标是否越界,如果越界说明缺少右括号,向上抛False
  45.                 if j >= len(s):
  46.                     return False
  47.         #如果在没有左括号的情况下先检测到了右括号则返回False
  48.         elif s[i] in ['}',']',')']:
  49.             return False
  50.         #没有找到左括号就向右移动游标
  51.         i += 1
  52.         #判断当前左括号游标是否越界,如果越界说明没有左括号,返回True
  53.         if i >= len(s):
  54.             return True
  55. print(dc(input('请输入带N多个括号的字符串:')))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-18 20:50:55 | 显示全部楼层
k
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-15 19:28:07 | 显示全部楼层
啊啊啊啊啊枚金币咋办
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-16 09:40:28 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-2 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表