所以我試圖解決一個挑戰,如果perens是在正確的順序,我返回true;否則,當然是錯誤的。我想出了代碼是在這裏:如何通過perens分隔字符串而不會丟失perens?紅寶石
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'這個方法並不適用。爲什麼這個奇怪的測試'如果str.length%2 == 1'返回false? *(注意'== 1'沒用,而不是使用模數,你可以檢查最後一位)* –