python實現有效的括號判斷

2021-10-17 15:26:48 字數 1374 閱讀 5590

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

有效字串需滿足

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

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

輸入:s = 「()」

輸出:true

輸入:s = 「(){}」

輸出:true

輸入:s = 「(]」

輸出:false

輸入:s = 「([)]」

輸出:false

輸入:s = 「」

輸出:true

實現這個演算法我們可以利用的先進後出的特性,對於每個括號它需要找到與它匹配的括號。

我們先遍歷字串,將字串的字元存入到棧中,當匹配到結束的括號時,如果此時棧不為空並且棧頂的字元與當前的括號相匹配時,我們將棧頂的字元進行出棧操作,否則直接返回false。如果最終棧為空表示每個括號都找到了匹配的結束括號,否則匹配失敗。

class

solution

:def

isvalid

(self, s:

str)

->

bool

:#如果字串是奇數一定不滿足條件

iflen

(s)%2!=

0:return

false

#定義乙個括號字典

bracket_dict =":

"#定義乙個棧

stack =

for c in s:

#當匹配到括號的結束符時

if c in bracket_dict:

#棧不能為空,並且棧頂要與結束的括號匹配

iflen

(stack)

>

0and bracket_dict[c]

== stack[-1

]:stack.pop(

)else

:return

false

else

:return

not stack

s = solution(

)print

(s.isvalid(

"(){}"))

print

(s.isvalid(

"([)]"

))

參考:leetcode詳解

js實現有效的括號 力扣

目錄 1 題目 2 輸入輸出 3 解法 使用棧 1 使用陣列儲存左右括號 2 使用map儲存對應的括號 4 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 ...

LeetCode使用Python實現有效的數獨

判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示例1 輸入 5 3 7 6 1 9 5 9 8 6 8 6 3 4 8 3 1 7 2 6 6 2 8 4 1 9 5 8 7 9 輸出...

LeetCode使用python實現有效的括號

左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。例項1 輸入 輸出 true例項2 輸入 輸出 true例項3 輸入 輸出 false例項4 輸入 輸出 false例項5 輸入 輸出 true實現思路 1 去除字串中所有的空白字串 2 遍歷字串 2.1 遇...