У меня есть два числа: 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
У меня есть проблему памяти, превышающей, если А и В в диапазон 10^18.
Может кто-нибудь предложить мне, как это решить.
Заранее спасибо
Использовать xrange? Но с этими номерами вам, вероятно, потребуется найти лучший алгоритм. – polku
, вы, вероятно, не хотите выполнять операцию 'str (n)' дважды в первую очередь, тогда вам не нужно сравнивать целую строку с ее обратным, вам просто нужно сравнить первую половину со второй половиной – JMat
@JMat Сравнение двух половин не будет работать для чисел палиндрома с нечетным количеством цифр, например 101. –