Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.
Функция для определения, является ли строка палиндромом
Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создайте функцию, которая принимает слово (строку) и проверяет, читается ли оно одинаково слева направо и справа налево. При необходимости можно переименовать входной параметр, но логика должна оставаться той же – вернуть true, если слово палиндром, и false в противном случае.
Ответ
Сравните символы с начала и конца, постепенно сдвигая указатели к центру. Первое несовпадение означает false; если его нет, верните true.
function isPalindrome(word) {
const chars = [...word];
for (let left = 0, right = chars.length - 1; left < right; left++, right--) {
if (chars[left] !== chars[right]) return false;
}
return true;
}
Никакое игнорирование регистра или пунктуации здесь не добавлено: оно не задано условием. Пустая строка является палиндромом. Spread сохраняет кодовые точки, но не составные графемы. Время O(n), память O(n) для массива символов.