LeetCode 有效的括號

2022-06-09 21:54:09 字數 1206 閱讀 4661

給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

解題思路

思路:棧;

對括號進行對映,右括號為鍵,左括號為值;

如果遇到左括號,直接將其入棧。等待後面匹配處理;

如果遇到右括號,檢查棧頂的元素。若是同型別則彈出繼續處理接下的部分。否則,直接返回 false;

如果最終遍歷完成後,棧中還有元素,同樣返回 false。

**實現鄭州**醫院

class solution:

def isvalid(self, s: str) -> bool:

'''判斷是否是有效的括號

args:

str: 包含括號的字串

returns:

返回判斷的結果,滿足條件:

1. 左括號必須用相同的型別的右括號閉合。

2. 左括號必須以正確的順序閉合。

空字串可以被認為是有效的字串

返回型別為布林型

# 以棧形式儲存左括號

stack =

# 以右括號當成鍵對映對應型別的左括號

# 遍歷字串,遇左括號則進行入棧

for ch in s:

# 對字元進行判斷,是否為右括號

# 為右括號的情況下,判斷 stack 棧頂是否是同型別的左括號

# pop 出棧頂的字元

# 若 stack 為空,用 '?' 進行標記

pop_prth = stack.pop() if stack else '?'

# 如果左右括號不成對,直接返回 false

return false

else: # 左括號入棧

# stack 最終為空,則表示為有效

return not stack

leetcode 有效的括號

題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。示例1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 true includ...

leetcode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...

LeetCode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 本題需使用棧來解決,即遍歷字串,遇到左括號...