写一个方法'valid_string?' 接受一个字符串。如果括号、圆括号和花括号正确闭合,则返回 true。否则返回 false。
valid_string?("[ ]") # returns true
valid_string?("[ ") # returns false
valid_string?("[ ( text ) {} ]") # returns true
valid_string?("[ ( text { ) } ]") # returns false
我的代码:对所有内容都返回 false。甚至尝试对个别情况使用显式布尔值 {} || () || 等都没有用。对所有内容都返回 true 或 false。是我的驱动程序代码吗?
def valid_string?(str)
if str == ("\[\s+]")
true
else
false
end
end
更新的解决方案:------------------------------------------------------------ - 是的!#match 肯定效果更好!尽管我的最后一行测试代码评估为真。什么时候应该是假的。. .
def valid_string?(str)
if str.match "(\\[.+\\])" || "|(\\(\\))" || "|({})"
return true
else
return false
end
end
puts valid_string?("[ ]") # returns true
puts valid_string?("[ ") # returns false
puts valid_string?("[ ( text ) {} ]") # returns true
puts valid_string?("[ ( text { ) } ]") # returns false