学习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")它失败了。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
添加:
sentence.gsub!/\W/, ''
在sentence.downcase!
另请注意,您的方法有副作用:
string = 'NeverOddOrEven'
p palindrome?(string) #=> true
p string #=> neveroddoreven
要解决此问题,请将前两行更改为:
sentence = sentence.downcase.gsub /\W/, ''