有人可以解释什么使得这个方法在第一对之后退出循环?闭括号红宝石方法
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
是的,我知道这是最理想的,我想用我能想到的所有方式来写这种方法:)谢谢! –