RubyMonk,Palindrome

时间:2014-05-10 10:43:38

标签: ruby palindrome

学习Ruby,目前在Ruby Monk上做palindrome方法创建者。

基本上,编写一个方法,如果字符串确实是回文,则返回true。

这是我的代码。

def palindrome?(sentence)

sentence.downcase!


array_1 = sentence.split("")

array_2 = sentence.reverse.split("")

if array_1 == array_2
    true
else
    false
end
end

p palindrome?("NeverOddOrEven")

它有效,但前提是每个单词之间没有空格。

所以,如果你检查" Never Odd Or Even" (而不是" NeverOddOrEven")它失败了。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

添加:

sentence.gsub!/\W/, ''

sentence.downcase!

之后

另请注意,您的方法有副作用:

string = 'NeverOddOrEven'
p palindrome?(string)   #=> true
p string                #=> neveroddoreven

要解决此问题,请将前两行更改为:

sentence = sentence.downcase.gsub /\W/, ''