leetcode 20 有效的括號

2021-09-12 19:13:59 字數 1351 閱讀 9233

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

有效字串需滿足:

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

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

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

分析:

# 思路2用乙個字典的資料型別,來實現與棧頂元素做匹配,dic=':'

# (這裡注意一下,key是right,value是left)

## 舉個例子:[({})]

# [入棧,(入棧,是right的元素,彈出現在棧的棧頂元素stack[-1],

# 與dic中key為}的值做乙個匹配,如果stack[-1]不等於dic的value,則返回false,如果值相等,匹配成功,返回true

## 彈出棧頂元素,剩下的一次類推。知道所有元素出棧後,如果這時棧還有元素,則返回false。

class solution(object):

def isvalid(self, s):

""":type s: str

:rtype: bool

"""# 注意空串是ture

if len(s)%2 != 0:

return false

dicts = ','[':']'}

stack =

for key in s:

if key in dicts:

else:

# }是right的元素,彈出現在棧的棧頂元素stack[-1]

# 如果棧不空,彈出棧頂元素

# 對比棧頂元素是否是當前元素的配對元素

if not stack or key != dicts[stack.pop()]:

return false

return stack==

妙!!:

class solution:

def isvalid(self, s):

while '{}' in s or '()' in s or '' in s:

s = s.replace('{}', '')

s = s.replace('', '')

s = s.replace('()', '')

return s == ''

參考:

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 輸入 輸出...