我在进行一些App Academy Open的练习,遇到了一个我无法理解的测试案例。我已经编写了一个方法来检测给定字符串是否为回文,对于我测试的所有字符串,它似乎都能正常工作 - 除了'xabcx'。我是不是漏掉了什么?
def palindrome?(str)
(str.length / 2).times do |idx|
if str[idx - 1] != str[idx * -1]
return false
end
end
true
end
p palindrome?("xabcx")
我期望得到false
的输出结果,但实际上却得到了true
。对于我尝试的其他单词,该方法都能如预期地工作。
idx
的第一个值是0
,而不是1
。您想要的是if str[idx] != str[-1-idx]
。 - Cary Swoveland