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