(,),(、)という4つの文字を要素とした配列があります。
この配列に対してカッコが正しく対応しているかどうかを調べるメソッドを定義してください。
下のコードは一体何をしているのでしょうか?
分かりやすく説明していだけるとうれしいです
def balanced?(array)
stack = Array.new()
array.each{|elem|
case elem
when '('
stack.push(elem)
when '{'
stack.push(elem)
when ')'
prev_elem = stack.pop
if prev_elem != '('
return false
end
when '}'
prev_elem = stack.pop
if prev_elem != '{'
return false
end
else
return false
end
}
if stack.empty?
return true
else
return false
end
end
p balanced?([]) #=> true
p balanced?(["(",")"]) #=> true
p balanced?(["{","(",")","}"]) #=> true
p balanced?(["{","(",")"]) #=> false
p balanced?(["(",")","}"]) #=> false
p balanced?(["(", "{", "{", "}", "(", ")", "}", "(", ")", ")"]) #=> true
p balanced?(["(", "{", "{", "}", "(", "}", ")", ")"]) #=> false
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。