2015-03-26 4 views
2

Я проверил эту тему: Palindrome check in Javascript Но я больше ищу, чтобы исправить свой собственный алгоритм. Я просто программирую онлайн прямо сейчас, поэтому у меня нет доступа к хорошему отладчику. Таким образом, любые намеки/проблемы с отладкой будут оценены с большой благодарностью. Вот код:Javascript Palindrome Logic

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" (и отлично смотрится на бумаге)

+2

'str.replace (/ \ Вт/г "") == str.split (""). Обратное(). Присоединиться (""). Заменить (/ \ Вт/г, "") ' – dandavis

+0

Опять же, не ищем других ответов. Я ищу, чтобы исправить это. – gordlonious

+3

«У меня нет доступа к хорошему отладчику» ... если вы не застряли в каком-то древнем браузере, что случилось со встроенной консолью и связанными с ней инструментами? У Chrome есть отличный отладчик. –

ответ