20. Valid Parentheses
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
# @param {String} s
# @return {Boolean}
def is_valid(s)
if s.empty?
return true
elsif s.chars.size % 2 != 0
return false
end
new_arry = []
s.chars.each do |v|
if v == "(" || v == "{" || v == "["
new_arry.push(v)
else
top = new_arry.pop
if (top == "(" && v != ")") || (top == "[" && v != "]") || (top == "{" && v != "}")
return false
end
end
end
return new_arry.empty?
end
Last updated
Was this helpful?