LeetCode-020有效的括号

题目描述:

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

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

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

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

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

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

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

解析:

1.建立一个映射表,方便stack弹出时判断

2.如果stack弹出来时判断不等则直接返回False

# 代码部分:

def isValid(string):
    map = {'[':']',
          '{':'}',
          '(':')'}
    stack = []
    for s in string:
        if s == '[' or s == '{' or s == '(': 
            stack.append(s)
        if s == ']' or s == '}' or s == ')':
            if len(stack) == 0:
                return False
            top = stack.pop() 
            if s != map[top]:
                return False
    return len(stack) == 0
isValid('[{[]}]}')  #Flase
原文地址:https://www.cnblogs.com/implanck/p/12257235.html