Python3 효과적인 괄호 문제

Python3 효과적인 괄호 문제

원제 https://leetcode-cn.com/problems/valid-parentheses/

단지 소정 '(', ')'문자열이 포함 "{", "}", "[", "]", 및 문자열이 유효한지 여부를 결정한다.

유효한 문자열을 충족해야합니다 :

왼쪽 브래킷은 동일한 유형의 닫는 괄호에 의해 폐쇄해야합니다.
왼쪽 괄호가 올바른 순서로 닫아야합니다.
빈 문자열을 참고 유효한 문자열로 간주 될 수있다.

예 1 :

输入: "()"
输出: true

예 2 :

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

예 3 :

输入: "(]"
输出: false

예 4 :

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

예 5 :

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

문제 해결 :

class Solution:
    def isValid(self, s: str) -> bool:
        stack = [] # 只存未被配对的( [ {   遇到配对的直接出栈
        n = len(s)
        for i in range(n):
            w = s[i]
            if w == ')':
                length = len(stack)
                if length == 0 or stack[length - 1] != '(':
                    return False
                else:
                    stack.pop()
            elif w == '}':
                length = len(stack)
                if length == 0 or stack[length - 1] != '{':
                    return False
                else:
                    stack.pop()
            elif w == ']':
                length = len(stack)
                if length == 0 or stack[length - 1] != '[':
                    return False
                else:
                    stack.pop()
            elif w == '(' or w == '{' or w == '[':
                stack.append(w)
        return len(stack) == 0 # 都配对了则栈为空  如果栈不为空则说明未配对
게시 24 개 원래 기사 · 원의 칭찬 0 · 조회수 (416)

추천

출처blog.csdn.net/qq_18138105/article/details/105167805