Помогите Васе понять, будет ли фраза палиндромом. Учитываются только буквы и цифры, заглавные и строчные буквы считаются одинаковыми.
Решение должно работать за 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')