Правильный палиндром

Дана строка s. Верните true, если она является палиндромом, и false в противном случае.

Палиндром - это строка, которая читается одинаково слева направо и справа налево. При этом регистр букв не имеет значения, а все символы, не являющиеся буквами или цифрами, игнорируются.

Пример 1:

Input: s = "Was it a car or a cat I saw?"

Output: true

Объяснение: После удаления пробелов и приведения к нижнему регистру получаем "wasitacaroracatisaw", 
что является палиндромом.

Пример 2:

Input: s = "Hello World"

Output: false

Объяснение: После обработки получаем "helloworld", что не является палиндромом.

Рекомендуемая временная и пространственная сложность

Стремитесь к решению с временной сложностью O(n) и пространственной сложностью O(1), где n — длина входной строки.


Подсказка 1

Сначала нужно очистить строку от всех символов, кроме букв и цифр, и привести её к одному регистру.


Подсказка 2

Вместо создания новой строки можно использовать два указателя (в начале и в конце) и двигаться навстречу друг другу, пропуская ненужные символы.


Подсказка 3

Можно использовать встроенные методы для проверки, является ли символ буквой или цифрой, или создать свою вспомогательную функцию для этого.

Эта задача проверяет умение работать со строками, их преобразованием и сравнением. Она помогает развить навыки обработки текста и понимание концепции палиндромов. Решение включает работу с регулярными выражениями или прямую обработку символов, что полезно для улучшения навыков манипуляции строками.

Входные параметры :

"Was it a car or a cat I saw?"

Ожидаемый результат

true