Правильный палиндром
Дана строка 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
Можно использовать встроенные методы для проверки, является ли символ буквой или цифрой, или создать свою вспомогательную функцию для этого.