如何返回给定数组中的回文数字数组?不是回文数字,如11,22,33,44,& c。,但在相同数组中回文数字与其他数字相同。假设所有元素都是正数,结果不应该返回单个数字(下面的示例)将数组中的回文数元素返回给数组
比方说,我有array = [13, 31, 51, 79, 83, 97]
。自13 & 31和79 & 97是回文的,我希望它返回array_pali = [13, 31, 79, 97]
def pali_array(array)
array_reverse = array.map{|el| el.to_s.reverse.to_i}
array_pali = array & array_reverse
return array_pali
end
我最初的计划是拿出该阵列的反向,array_reverse = array.map{|el| el.to_s.reverse.to_i}
和相交它们:array & array_reverse
的一个问题发生的是,如果我想从2-100返回素数的数组给出:
array = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
和我相反的是:
array_reverse = array.map{|el| el.to_s.reverse.to_i}
=> [2, 3, 5, 7, 11, 31, 71, 91, 32, 92, 13, 73, 14, 34, 74, 35, 95, 16, 76, 17, 37, 97, 38, 98, 79]
它返回:
array & array_reverse
=> [2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97]
这种方法的问题:
2,3,5,7,和11是不回文对于其它元件。单个数字号码的反面是该号码本身,它会使代码返回所有的单个数字号码,以及所有的回文号码(如11,22,33)。它应该只返回[13, 17, 31, 37, 71, 73, 79, 97]
我怎样才能使它返回只元素在同一阵列中的回文到其他元素?
只需添加另一个滤镜步骤即可删除回文数字 – Amit
没有“回文”之类的东西。 1,121和12321都是[根据定义palindromes](https://en.wikipedia.org/wiki/Palindromic_number)。 13和31不是“回文”,它们只是数字相反的数字。 – tadman
我刚看到这个问题,很惊讶地看到你在35分钟后选择了一个答案!为什么不拖延至少几个小时来鼓励其他答案。你并不急于知道。 –