02:21
# @param {String} s
# @return {Boolean}
def is_valid(brackets)
open_to_close = {
'(' => ')',
'{' => '}',
'[' => ']'
}
opens = []
brackets.each_char do |bracket|
if open_to_close.keys.include?(bracket)
opens << bracket
elsif open_to_close.values.include?(bracket)
open = opens.pop
return false if bracket != open_to_close[open]
else
raise ArgumentError, "Unexpected bracket: #{bracket}"
end
end
opens.size == 0
end02:01
# @param {String} s
# @return {Boolean}
def is_valid(brackets)
open_to_close = {
'(' => ')',
'{' => '}',
'[' => ']'
}
opens = []
brackets.each_char do |bracket|
if open_to_close.keys.include?(bracket)
opens << bracket
elsif open_to_close.values.include?(bracket)
open = opens.pop
return false if bracket != open_to_close[open]
else
raise ArgumentError, "Unexpected bracket: #{bracket}"
end
end
opens.size == 0
end# @param {String} s
# @return {Boolean}
def is_valid(brackets)
open_to_close = {
'(' => ')',
'{' => '}',
'[' => ']'
}
opens = []
brackets.each_char do |bracket|
if open_to_close.keys.include?(bracket)
opens << bracket
elsif open_to_close.values.include?(bracket)
open = opens.pop
return false if bracket != open_to_close[open]
else
raise ArgumentError, "Unexpected bracket: #{bracket}"
end
end
opens.size == 0
end