gpt4 book ai didi

python - 需要更好的逻辑来查找范围内的回文数

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:12 25 4
gpt4 key购买 nike

我有两个数字,A = 10 和 B =20。

现在我需要计算 (A,B) 范围内的回文数

我试过这个:

s = list(map(int,raw_input().split()))
a = s[0]
b = s[1]

l = range(s[0],s[1]+1)
# print "list : ",l

def isNumberPalindrome(n):
return str(n) == str(n)[::-1]

x = filter(isNumberPalindrome, l)
# print " All Palindorme numbers : ",x
count = len(x)
print count

如果 A 和 B 在 10^18 范围内,我有内存超出问题

有人可以建议我如何解决这个问题。

提前致谢

最佳答案

使用生成器而不是调用 range()。

from __future__ import print_function

def isNumberPalindrome(n):
return str(n) == str(n)[::-1]

a = pow(10, 18)
b = pow(10, 19) + 1

def gen_range(start, end):
i = long(start)
while i < end:
yield i
i = i + 1

count = 0
for l in gen_range(a, b):
count += isNumberPalindrome(l)

print(count)

关于python - 需要更好的逻辑来查找范围内的回文数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com