LeetCode第20題,有效的括號

2021-09-29 10:08:41 字數 911 閱讀 2861

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

有效字串需滿足:

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

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

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

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

解題思想:模仿棧的操作,遇到左括號入棧,遇到右括號檢測棧頂元素是否與該右括號匹配。

基於python

class solution:

def isvalid(self, s):

stack =

match = ':'

match_left,match_right = match.values(),match.keys()

for i in s:

if i in match_right:

if stack and stack[-1] == match[i]:

stack.pop()

else:

return false

elif i in match_left:

return not stack

class solution:

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

dic = ', '[': ']', '(': ')', '?': '?'}

stack = ['?']

for c in s:

elif dic[stack.pop()] != c: return false

return len(stack) == 1

LeetCode第20題 有效的括號

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

LeetCode第20題 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。思路 時間複雜度o n 將左括號放入棧中,如果是右括號,判斷當前棧頂元素是否和當前有括號型別一致。每有乙個右括號與棧頂左括號匹配,就將棧頂左括號彈出。...

第20 題 有效括號 python

思路 字典儲存對應括號 遍歷字串 左括號入棧 右括號分三種情況 1.若此時棧為空,直接返回false 2.若此時右括號和棧頂左括號不匹配,直接返回false 3.若此時右括號和棧頂左括號匹配,棧頂左括號出棧 遍歷結束後 若棧為空棧,說明所有括號都匹配完成,返回true 否則,返回false clas...