python生成回文數 - chyanog -
from itertools import如果需要產生回文數,資料量不大時,往往會判斷是否對稱或比較反轉後是否還是自身,然後過濾,不過指定的範圍較大時,效率就不高了product
defpalindromenum(n):
return [n*'
%s'%tuple(list(i)+list(i[n*(n-1)/2%(n-1)-1::-1])) for i in product(*([range(1,10)]+[range(0,10)]*((n+1)/2-1)))]
#n>1
print map(palindromenum, [3,4,5]
n位的回文數是其實是由前ceiling(n/2)位決定的,以上**採用這種構造方法生成,經測試生成10位以內的回文數不到1 s (不輸出)
回文數索引python
給定乙個僅由小寫字母組成的字串。現在請找出乙個位置,刪掉那個字母之後,字串變成回文。請放心總會有乙個合法的解。如果給定的字串已經是乙個回文串,那麼輸出 1。import sys n int sys.stdin.readline strip slist for i in range n if n 0 ...
python演算法 回文數
重點來了 不能將整數轉為字串 下面這個方法比較笨哈哈,但是也比較好理解吧 class solution def ispalindrome self,x int bool num1 x num2 0 num3 num1 if num1 0 如果輸入為負數,肯定不是回文數 return false if...
藍橋杯 2015決賽 生成回文數
所謂回文數就是左右對稱的數字,比如 585,5885,123321 當然,單個的數字也可以算作是對稱的。小明發現了一種生成回文數的方法 比如,取數字19,把它與自己的翻轉數相加 19 91 110,如果不是回文數,就再進行這個過程 110 011 121 這次是回文數了。200以內的數字中,絕大多數...