20. Valid Parentheses [easy] (Python)

来源:互联网 发布:数控车床编程语言 编辑:程序博客网 时间:2024/06/05 07:45

题目链接

https://leetcode.com/problems/valid-parentheses/

题目原文

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.

题目翻译

给定一个字符串,只包含 '(', ')', '{', '}', '['']' 这几个字符,判断输入字符串是否是有效的。
所有的括号必须以正确的顺序闭合,比如 "()""()[]{}" 是有效的,但 "(]""([)]" 是无效的。

思路方法

思路一

用栈来操作,将所有的字符依次入栈,当栈顶的括号和正要入栈的括号匹配时将栈顶的括号弹出且不入栈,否则入栈新的括号。最后,只有当栈里没有括号时,才表明输入是有效的。

代码

class Solution(object):    def isValid(self, s):        """        :type s: str        :rtype: bool        """        pars = [None]        parmap = {')': '(', '}': '{', ']': '['}        for c in s:            if c in parmap and parmap[c] == pars[len(pars)-1]:                pars.pop()            else:                pars.append(c)        return len(pars) == 1

思路二

实际上,通过观察可以发现:如果正要入栈的是右括号,而栈顶元素不是能与之消去的相应左括号,那么该输入字符串一定是无效的。于是,可以大的加快判断过程。

代码

class Solution(object):    def isValid(self, s):        """        :type s: str        :rtype: bool        """        pars = [None]        parmap = {')': '(', '}': '{', ']': '['}        for c in s:            if c in parmap:                if parmap[c] != pars.pop():                    return False            else:                pars.append(c)        return len(pars) == 1

说明
当然这里使用dict来存放括号的匹配关系不是必要的,直接通过字符之间ascii码的差值判断也是比较快的。

PS: 新手刷LeetCode,新手写博客,写错了或者写的不清楚还请帮忙指出,谢谢!
转载请注明:http://blog.csdn.net/coder_orz/article/details/51697963

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 异地身份证没磁怎么办 指纹浅怎么办怎么保护 打卡指纹不清晰怎么办 驾考指纹录不上怎么办 指纹读不出来怎么办 中国银行卡吞了怎么办 存钱钱卡住了怎么办 办理身份证指纹录不上怎么办 手指没有指纹了怎么办 签了户口身份证怎么办 生了三胎户口怎么办 双户口注销学历怎么办 户口注销了社保怎么办 科一指纹录不上怎么办 右倒库右边太宽怎么办 手机录不了指纹怎么办 6sp指纹不灵敏怎么办 手指纹汗多怎么办? 手指没指纹怎么办身份证 青岛身份证丢了怎么办 新身份证没激活怎么办 坐轻轨没身份证怎么办 办身份证指纹录不上怎么办 指纹固化剂干了怎么办 指纹解锁没反应怎么办 荣耀v8指纹失灵怎么办 指纹多次不匹配怎么办 华为指纹被禁用怎么办 手脱皮没有指纹怎么办 手脱皮手机指纹怎么办 手脱皮录指纹怎么办 科二指纹打不上怎么办 三星手机无法解锁怎么办 iphone7指纹坏了怎么办 苹果8录不上指纹怎么办 手机套总是粘指纹怎么办 华为p9指纹禁用怎么办 华为p10升级失败怎么办 手机指纹锁没反应怎么办 华为手机指纹禁用怎么办 excel输入值非法怎么办