Действительная проблема палиндрома

Для заданной строки определить, является ли она палиндромом, учитывая только буквенно-цифровые символы и игнорируя регистры.

Примечание. Для решения этой проблемы мы определяем пустую строку как действительный палиндром.

Пример 1:

Input: "A man, a plan, a canal: Panama"
Output: true

Пример 2:

Input: "race a car"
Output: false

Ограничения:

  • s состоит только из печатных символов ASCII.

Решение

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

В случае, если у нас нет буквы или цифры в одном из индексов, мы будем перемещаться в этом индексе еще на один символ, пока не найдем в обоих индексах символ или цифру.

При наличии действительного символа мы сравним, равны ли они, если они не равны, мы вернем false. Когда наши индексы пересекаются, мы вернем истину.

Здесь вы можете увидеть производительность моего решения:

Вы можете подписаться на меня в LinkedIn.