isAlmostPalindromeWrong2

Run Settings
LanguageJavaScript
Language Version
Run Command
var isAlmostPalindrome = function(s) { let str = s.replace(/[^A-Za-z0-9]/g, '').toLowerCase(); let sLen = str.length -1; let forwards = true; let backwards = true; for (let i = 0; i < sLen; i++) { let char = str[i]; let backChar = str[sLen - i]; if (char !== backChar) { let sHalf = Math.floor(str.length / 2); for (let j = 0; j < sLen; j++) { let char2 = str[j]; let rightPtr = sLen - j; let backChar2 = str[rightPtr]; console.log("Char2: " + char2 + " BackChar2: " + backChar2); if (char2 != backChar2) { console.log("J: " + j + " I: " + i); if (j == i) { console.log("I: " + i); char2 = str[j+1]; if (char2 !== backChar2) { console.log("forwards = false") forwards = false; char2 = str[j]; backChar2 = str[rightPtr - 1]; console.log("char2: " + char2 + " backChar2: " + backChar2) if (char2 !== backChar2) { backwards = false; } } } } if (j == sHalf || rightPtr == sHalf) { if (backwards == true || forwards == true) { console.log("J: " + j + " sHalf: " + sHalf + " rightPtr: " + rightPtr) return true; } else { return false; } } rightPtr--; } } } //console.log(ptrArr); return true; } //console.log(isAlmostPalindrome("A man!, a plan, a canal: Panada")) //false //console.log(isAlmostPalindrome("A man!, a plan, a canal: Panama")) //true //console.log(isAlmostPalindrome("race a car")) //true //console.log(isAlmostPalindrome("abca")) console.log(isAlmostPalindrome("eeccccbebaeeabebccceea")) //console.log(isAlmostPalindrome("abccdba")) //true //console.log(isAlmostPalindrome("abcdefdba")) //false ! //console.log(isAlmostPalindrome("")) //true ! //console.log(isAlmostPalindrome("a")) //true ! //console.log(isAlmostPalindrome("ab")) //true //console.log(isAlmostPalindrome("A man, a plan, a canal: Padama")) //false
Editor Settings
Theme
Key bindings
Full width
Lines