编写一个方法'valid_string?‘接受一个字符串。如果括号、括号和大括号正确关闭,则返回true。否则它会返回false。
valid_string?("[ ]") # returns true
valid_string?("[ ") # returns false
valid_string?("[ ( text ) {} ]") # returns true
valid_string?("[ ( text { ) } ]") # returns false我的代码:一切都是假的。甚至尝试在个别情况下使用显式布尔值,{} AC.26 () \x,等,都没有起作用。对所有内容都返回true或false。是我的司机密码吗?
def valid_string?(str)
if str == ("\[\s+]")
true
else
false
end
end更新的SOLUTION:------------------------------------------------是的!#匹配肯定更好!虽然我的最后一行测试代码正在计算为true。当它应该是假的。。。
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发布于 2013-12-23 18:39:08
一个简单的计数程序怎么样?
def valid_string?(str)
match_count = 0
str.each_char do |c|
match_count += 1 if [ '[', '{', '(' ].include?(c)
match_count -= 1 if [ ']', '}', ')' ].include?(c)
end
return match_count == 0
endhttps://stackoverflow.com/questions/20747294
复制相似问题