leetcode 20 有效的括號

2021-10-06 04:22:47 字數 921 閱讀 5133

題目:

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

有效字串需滿足:

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

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

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

思路:使用棧可以保證時間複雜度為o(n)

將左括號加入棧

檢測右括號,如果棧頂元素能匹配,則將棧頂元素pop,不能匹配則直接返回false

最後檢測棧是否為空,為空即有效

code:

#ruby

def is_valid(s)

hash = ': '

stack =

for i in 0...s.size

if hash.values.include? s[i]

stack << s[i]

elsif (hash.keys.include? s[i].to_sym) && (stack[-1] == hash[s[i].to_sym])

stack.pop

else

return false

endend

stack.empty?

end

#python3

class solution:

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

hash = ', '[': ']', '(': ')'}

stack =

for c in s:

elif stack[-1] in hash and hash[stack[-1]] == c: stack.pop()

else: return false

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