Прошу подсказать наиболее эффективный способ обнаружения строки-палиндрома. Основной камень преткновения - символы пунктуации и иже с ними. Сама реализация алгоритма мне видится как сравнение первого элемента строки с последним, второго с предпоследним и так далее. Иначе говоря как-то так:
for (var arr = 'Аргентина манит негра!'
i = 0; i < arr.length; i++) {
if (a[i] !== a[a.length - (i + 1)]) {
result = -1;
break;
}
}
function isPalindrome(str) {
let s = str.toLowerCase().replace(/[^а-яё]/g, '');
return s == [...s].reverse().join('');
}
console.log(isPalindrome('Аргентина манит негра!'))
console.log(isPalindrome('Аргентина манит афроамериканца?'))
console.log('Аргентина манит негра!'.toLowerCase().match(/[а-яё]/g).every((c,i,a)=>c===a[a.length-(i+1)]))
Сборка персонального компьютера от Artline: умный выбор для современных пользователей