您的位置:首页 > 编程语言 > Python开发

python生成回文数

2013-01-05 08:27 204 查看
python生成回文数 - chyanog - 博客园

python生成回文数


from itertools import product

def palindromeNum(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 (不输出)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: