Решение: число представляю в виде строки, прохожу по циклу от 0 до половины размера строки и сравниваю последовательно симметрично i и -(i +1). Все одинаковые значения добавляются в список и в конце сравниваю размер списка с половиной размера строки. Если равны - то палиндром.
Дебаг:
x = 1234321
for i in xrange(len(str(x)) // 2):
if str(x)[i] == str(x)[-(i + 1)]:
print str(x)[i]
Привожу в однострочник:
if len([i for i in xrange(len(str(x)) // 2) if str(x)[i] == str(x)[-(i + 1)]]) == len(xrange(len(str(x)) // 2)):
print 'Палиндром'
Или красивое решение :)
Или красивое решение :)
"""
Check integer for palindrom
>>> isPalindrom(131)
True
>>> isPalindrom(130)
False
"""
return str(n) == str(n)[::-1]
спасибо разобрался, нашел еще способ интересный https://pythononline.ru/question/palindrom-iz-podstroki-v-python
ОтветитьУдалить