Обнаружение строки-палиндрома

109
22 марта 2022, 13:30

Прошу подсказать наиболее эффективный способ обнаружения строки-палиндрома. Основной камень преткновения - символы пунктуации и иже с ними. Сама реализация алгоритма мне видится как сравнение первого элемента строки с последним, второго с предпоследним и так далее. Иначе говоря как-то так:

for (var arr = 'Аргентина манит негра!'
         i = 0; i < arr.length; i++) {
    if (a[i] !== a[a.length - (i + 1)]) {
       result = -1;
       break;
    }
}
Answer 1

function isPalindrome(str) { 
  let s = str.toLowerCase().replace(/[^а-яё]/g, ''); 
  return s == [...s].reverse().join(''); 
} 
 
console.log(isPalindrome('Аргентина манит негра!')) 
console.log(isPalindrome('Аргентина манит афроамериканца?'))

Answer 2

console.log('Аргентина манит негра!'.toLowerCase().match(/[а-яё]/g).every((c,i,a)=>c===a[a.length-(i+1)]))

READ ALSO
Как правильно записать в коде async/await javascript

Как правильно записать в коде async/await javascript

я начинающий разработчик на JavaScript и начал изучат обещания, и меня интересует как правильно использовать в коде async/awaitКак записывать обычные...

168
php сокеты, ошибка использования socket_connect

php сокеты, ошибка использования socket_connect

Есть нейронная сеть, ожидающая запросов от сервера, написанного на phpПри клике я со страницы отправляю запрос на сервер и получаю ответ

76
Некорректно работает AJAX пагинация

Некорректно работает AJAX пагинация

Всем привет На сайте есть пагинация к статьям, которая работает следующим образом: пользователь нажимает кнопку 'Показать больше статей',...

101
Блок &quot;Поделиться&quot; от Яндекс не отображается

Блок "Поделиться" от Яндекс не отображается

Блок установлен при помощи кода:

149