如何检查适当的可枚举是否是回文

时间:2013-04-07 03:50:41

标签: ruby palindrome enumerable

显然,哈希不适合这种测试。无论如何,这是我到目前为止所拥有的:

module Enumerable
  def palindrome?
    arr = []
    self.reverse_each do |x|
      arr << x
    end
    self == arr
  end
end

我的另一个想法是循环遍历arr和self元素,并使用for循环进行检查。

2 个答案:

答案 0 :(得分:2)

x = 'Tiger'
p "#{x} is planidrome" if x ==  x.reverse #=> no ouput
x = 'RADAR'
p "#{x} is planidrome" if x ==  x.reverse #=> "RADAR is planidrome"

module Enumerable
  def palindrome?
    p  self.to_a ==  self.to_a.reverse
  end
end
['r','a','d','a','r'].palindrome? #=> true

答案 1 :(得分:2)

module Enumerable
  def palindrome?
    a = to_a
    a == a.reverse
  end
end