python生成回文数 - chyanog - 博客园

 
python生成回文数
    

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]
python生成回文数
    

python生成回文数

 

如果需要产生回文数,数据量不大时,往往会判断是否对称或比较反转后是否还是自身,然后过滤,不过指定的范围较大时,效率就不高了

n位的回文数是其实是由前Ceiling(n/2)位决定的,以上代码采用这种构造方法生成,经测试生成10位以内的回文数不到1 s (不输出)

 
python生成回文数
    

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]
python生成回文数
    

python生成回文数

 

如果需要产生回文数,数据量不大时,往往会判断是否对称或比较反转后是否还是自身,然后过滤,不过指定的范围较大时,效率就不高了

n位的回文数是其实是由前Ceiling(n/2)位决定的,以上代码采用这种构造方法生成,经测试生成10位以内的回文数不到1 s (不输出)

相关文章:

  • 2022-12-23
  • 2021-06-10
  • 2021-10-13
  • 2021-06-04
  • 2022-01-08
  • 2021-05-27
  • 2022-01-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-08
  • 2022-12-23
  • 2023-04-02
  • 2022-12-23
  • 2021-06-25
相关资源
相似解决方案