Leetcode 20. Valid Parentheses 有效的括号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28888837/article/details/88081164

Leetcode 20. Valid Parentheses 有效的括号

标签: Leetcode


题目地址:https://leetcode-cn.com/problems/valid-parentheses/solution/

题目描述

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

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

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true

算法思想

非常常规的题目,在大学里面只要学过数据结构,我想这道题,都难不住你。可以使用一个栈,当是( [ {的时候入栈,当是) ] }的时候出栈,并进行比较,看是否匹配。如果不匹配则直接返回False,匹配则继续直到字符串结束,如果遍历完成后,栈也空则说明匹配,否则失败。

python代码

"""
Created on 2019/2/28 18:54
@File:有效的括号.py
@author: coderwangson
"""
"#codeing=utf-8"
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        l = []
        for i in s:
            if i in ['(','[','{']:
                l.append(i)
            else:
                if len(l)>0:
                    c =l.pop()
                else:
                    return False
                if (i ==')' and c=='(') or (i==']' and c=='[') or (i=='}' and c=='{'):
                    continue
                else:
                    return False
        return len(l)==0

print(Solution().isValid("]"))


猜你喜欢

转载自blog.csdn.net/qq_28888837/article/details/88081164
今日推荐