LeetCode 20 有效的括號

2021-10-02 20:02:22 字數 963 閱讀 6650

題目描述

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

有效字串需滿足:

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

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

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

示例 1:

輸入: 「([)]」

輸出: false

示例 2:

輸入: 「」

輸出: true

解題思路:使用棧的方法

初始化棧 s。

一次處理表示式的每個括號。

如果遇到開括號,我們只需將其推到棧上即可。這意味著我們將稍後處理它,讓我們簡單地轉到前面的 子表示式。

如果我們遇到乙個閉括號,那麼我們檢查棧頂的元素。如果棧頂的元素是乙個 相同型別的 左括號,那麼我們將它從棧中彈出並繼續處理。否則,這意味著表示式無效。

如果到最後我們剩下的棧中仍然有元素,那麼這意味著表示式無效。

提前返回 false

提前返回優點: 在迭代過程中,提前發現不符合的括號並且返回,提公升演算法效率。

解決邊界問題,當stack為空時的情況,直接加入元素

class

solution

:def

isvalid

(self, s:

str)

->

bool

: stack =

dic =":

"for char in s:

if stack and char in dic:

if dic[char]

!= stack.pop():

return

false

else

:return

not stack

LeetCode20有效括號

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

Leetcode 20 有效括號

leetcode 20 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true pthon 列表 如 a a b 字典 如 dict not ...

leetcode 20 有效括號

怎麼減少if語句,判斷是否是某乙個值,將值存進map中,是否在map中,若在,則是 匹配用map 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出...