【发布时间】:2016-02-29 14:15:16
【问题描述】:
所以我试图解决一个挑战,如果 perens 的顺序正确,我会返回 true;否则,当然是错误的。我想出的代码在这里:
def valid_parentheses(str)
return false if str.length % 2 == 1
begin
eval(str)
rescue SyntaxError
false
else
true
end
end
end
除了在valid_parentheses("hi(hi)()") 这样的情况下,它应该返回# => true,而是返回false,因为结尾() 是不必要的引用-取消引用,因此会引发错误。
我试图用括号把它分开,但是:
str.split(/\(.*\))
# =>"hi"
因为它删除了所有的括号,并且:
str.scan(/\(.*\))
#=> "(hi)()"
因为从技术上讲,它仍然以( 开头并以) 结尾。
如何将其拆分为分别得到 "(hi)" 和 "()"?
【问题讨论】:
-
你能清楚地解释一下你想用一个或几个示例输入字符串实现什么以及相应的预期结果吗?如果我理解得很好,您想检查括号是否平衡,不是吗?我已经可以说
split方法不是可行的方法。为什么这个奇怪的测试return false if str.length % 2 == 1? (注意== 1没用,不用取模,可以检查最后一位)