鱼C论坛

 找回密码
 立即注册
查看: 1100|回复: 4

[已解决]python有效括号

[复制链接]
发表于 2021-11-18 21:41:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
class Solution:
    def isValid(self, s):
       stack = []
       cache = {'(':')','[':']','{':'}'}
       for c in s:
           if c in cache:
               stack.append(c)
               continue
          if len(stack) == 0 or cache[stack.pop()] != c:
                return False
       return len(stack) == 0


求助大佬,解释一下红色部分的意思,不是很懂,谢谢!!
最佳答案
2021-11-18 22:07:02
如果stack列表为空 或者 以stack列表的最后一个元素为key所对应的value不等于c 则返回 False   
最后一句意思为 如果for c in s:这个循环正常执行中途没有执行return False这一语句 则会返回 len(stack) == 0 的布尔值(如果stack为空列表则会True 反之为False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-18 22:07:02 | 显示全部楼层    本楼为最佳答案   
如果stack列表为空 或者 以stack列表的最后一个元素为key所对应的value不等于c 则返回 False   
最后一句意思为 如果for c in s:这个循环正常执行中途没有执行return False这一语句 则会返回 len(stack) == 0 的布尔值(如果stack为空列表则会True 反之为False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-19 13:54:52 | 显示全部楼层
Mzzith 发表于 2021-11-18 22:07
如果stack列表为空 或者 以stack列表的最后一个元素为key所对应的value不等于c 则返回 False   
最后一句 ...

大佬,这里我还是不懂:
以stack列表的最后一个元素为key所对应的value不等于c 则返回 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-19 22:02:45 | 显示全部楼层
pallas 发表于 2021-11-19 13:54
大佬,这里我还是不懂:
以stack列表的最后一个元素为key所对应的value不等于c 则返回 False

你看 stack.pop()的意思是删除stack列表的最后一个值并把它返回出来,然后cache[stack.pop()]中 cache是一个字典,字典中每个key都会对应一个value 就例如字典的第一个 key 为'(' value为')'  ,cache[]中 中括号中的输入一个值就相当于key,cache字典就会找这个key所对应的value,所以如果key在字典中存在 则cache[stack.pop()]相当于stack列表最后一个元素作为key所对应的value值 如果这个value不等于c返回False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-20 12:56:38 | 显示全部楼层
好的,懂了,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 19:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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