Палиндром

Помогите Васе понять, будет ли фраза палиндромом‎. Учитываются только буквы и цифры, заглавные и строчные буквы считаются одинаковыми.

Решение должно работать за O(N), где N — длина строки на входе.

Формат ввода

В единственной строке записана фраза или слово. Буквы могут быть только латинские. Длина текста не превосходит 20000 символов.

Фраза может состоять из строчных и прописных латинских букв, цифр, знаков препинания.

Формат вывода

Выведите «True», если фраза является палиндромом, и «False», если не является.



import string
sp = (input()).lower()
sp = sp.replace(' ', '')

for p in string.punctuation:
    if p in sp:
        sp = sp.replace(p, '')
i = 0
flag = 1
while i < len(sp) // 2:
    if (sp[i] != sp[len(sp) - i - 1]):
        flag = 0
        break
    i += 1
if (flag == 0):
	print('False')
else:
	print('True')


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: