有人可以解釋什麼使得這個方法在第一對之後退出循環?閉括號紅寶石方法
def closed_parens(string)
chars = string.split(//)
chars.each_with_index do |c, i|
if c == "("
chars.shift
if chars[0] != ")"
return false
else
chars.shift
end
elsif c == "{"
chars.shift
if chars[0] != "}"
return false
elsif
chars.shift
end
elsif c == "["
chars.shift
if chars[0] != "]"
return false
else
chars.shift
end
end
end
if chars.length > 0
return false
else
return true
end
end
closed_parens("{}{}")
它的時間,以滿足['case'(https://ruby-doc.org/core-2.4。 0/doc/syntax/control_expressions_rdoc.html#label-case + Expression)語句。這也可以通過查找匹配對的表來改善:例如,'{'['=>']','('=>')','<' =>'>',...}。 – tadman
是的,我知道這是最理想的,我想用我能想到的所有方式來寫這種方法:)謝謝! –