Я проверил эту тему: Проверка палиндрома в Javascript Но я больше хочу исправить свой собственный алгоритм. Сейчас я просто программирую онлайн, поэтому у меня нет доступа к хорошему отладчику. Поэтому любые найденные подсказки/отладочные проблемы будут очень признательны. Вот код:
function isPalindrome(str) {
if(str !== null && str !== undefined && str !== NaN) {
var strStripped = str.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()@]/g,"");
var strSqueezed = strStripped.replace(/ /g, "");
var i, k;
k = str.length-1;
var numOfValidComparisons = 0;
for(i=0; i<strSqueezed.length; i++) {
if(strSqueezed.charAt(i) === strSqueezed.charAt(k)) {
numOfValidComparisons++;
}
k--;
}
if(numOfValidComparisons === strSqueezed.length)
return true;
else
return false;
}
return false;
}
Я записал логику сравнения циклов на бумаге и на мгновение был сбит с толку. Если вы не знаете, что такое палиндром, здесь: http://en.wikipedia.org/wiki/Palindrome
Тест, с которым я сейчас работаю, это строка "race car"
(и она отлично выглядит на бумаге)