如何返回給定數組中的迴文數字數組?不是迴文數字,如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分鐘後選擇了一個答案!爲什麼不拖延至少幾個小時來鼓勵其他答案。你並不急於知道。 –