«А роза упала на лапу Азора» — палиндром, 131 — числовой палиндром.
Решение: число представляю в виде строки, прохожу по циклу от 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 'Палиндром'
Или красивое решение 🙂
Или красивое решение 🙂
def isPalindrom(n):
«»»
Check integer for palindrom
>>> isPalindrom(131)
True
>>> isPalindrom(130)
False
«»»
return str(n) == str(n)[::-1]
Автор: Viktor