1. 程式人生 > 其它 >LeetCode20-有效的括號-python

LeetCode20-有效的括號-python

技術標籤:小白刷題中leetcode

題目描述

給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/valid-parentheses

解題思路

1.首先判斷括號個數是否為偶數,不是則不可能配對成功。
2.建立字典,表示左右括號的對應關係,此處為左括號在字典中,右括號為值。
3.遍歷:如果是左括號->入棧;如果不是左括號—>出棧,並判斷出棧的左括號的值(dic裡的對應關係)與此次的括號(c)是否一致:若一致則配對成功。

以上為個人思路,如有不對請各位大佬指正~

程式碼

class Solution:
    def isValid(self, s: str) -> bool:
        if len(s)%2==1:
            return False

        dic ={ '(':')', '[':']', '{':'}'}     # 建立字典,表示左右括號的對應關係

        stack = []
        for c in s:
            if c in dic:
                stack.append(c)
            else
: if len(stack)==0: #判斷棧為空? return False else: top = stack.pop() #棧頂元素 if c != dic[top]: #進來的括號不等於棧頂左括號對應 return False return not stack

執行結果

在這裡插入圖片描述