leetcode - python - 有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 1:
输入: "()"
输出: true

示例 2:
输入: "()[]{}"
输出: true

示例 3:
输入: "(]"
输出: false

示例 4:
输入: "([)]"
输出: false

示例 5:
输入: "{[]}"
输出: true

def isValid(s):
   dict = {')':'(','}':'{',']':'['}
   l = [None]
   for i in s:
       if i in dict and dict[i] == l[-1]:
           l.pop()
       else:
           l.append(i)
   return len(l) == 1
这里使用了出栈入栈的思想,只考虑s为有效的括号字符串的情况,左括号入栈,右括号出栈,其他情况均为无效括号字符串,方法十分巧妙。
len(l)==1对空字符串进行了判断,当s为空字符串时也认为是有效字符串
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,208评论 0 13
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,878评论 2 16
  • Novel丨请温柔地杀我 文丨海德文 (一) 周末,风清气爽,天高云淡,暖洋洋的太阳照进一个平淡的咖啡厅。 一对...
    海德文阅读 2,052评论 3 8
  • 前一段日子忙着毕业论文,忙着答辩,忙着毕业。 毕业快乐。
    铅笔只演绎黑白阅读 221评论 0 3
  • 我爸说要把房子租出去。 一言难尽呐! 我看到微博上好多说想回家不想上学,我确实喜欢家的感觉,但是却没有那么想回去。...
    嘎旺阅读 181评论 0 0