題目:
給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
思路:使用棧可以保證時間複雜度為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 輸入 輸出...