LeetCode: Valid Parentheses
Question
Given a string s 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.
Solution
def is_valid(s)
brackets = { ')' => '(', ']' => '[', '}' => '{' }
stack = []
s.each_char do |chr|
if stack.last && stack.last == brackets[chr]
stack.pop
else
stack << chr
end
end
stack.empty?
end
Comments