美文网首页
Day88 有效的括号

Day88 有效的括号

作者: 快乐的老周 | 来源:发表于2020-10-09 15:48 被阅读0次

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

    有效字符串需满足:

    左括号必须用相同类型的右括号闭合。

    左括号必须以正确的顺序闭合。

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

    示例 1:

    输入: "()"

    输出: true

    示例 2:

    输入: "()[]{}"

    输出: true

    示例 3:

    输入: "(]"

    输出: false

    示例 4:

    输入: "([)]"

    输出: false

    示例 5:

    输入: "{[]}"

    输出: true

    来源:力扣(LeetCode)

    链接:https://leetcode-cn.com/problems/valid-parentheses

    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    from collections import deque
    class Solution:
    def isValid(self, s):
    q = deque()
    brackets = {')':'(',']':'[','}':'{'}
    for i in s:
    if i in brackets.values():
    q.append(i)
    else:
    if len(q) == 0:return False
    if q.pop() == brackets.get(i):
    pass
    else:
    return False
    return not q #这个return用得妙!
    # if len(q) == 0:
    # return True
    # else:
    # return False

    def test_isValid():
    s = Solution()
    assert s.isValid("()") == True
    assert s.isValid("()[]{}") == True
    assert s.isValid("(]") == False
    assert s.isValid("([)]") == False
    assert s.isValid("{[]}") == True
    assert s.isValid("]") == False

    相关文章

      网友评论

          本文标题:Day88 有效的括号

          本文链接:https://www.haomeiwen.com/subject/vsblpktx.html