IsAlmostPalindromeWrong

Run Settings
LanguageJavaScript
Language Version
Run Command
var isAlmostPalindrome = function(s) { const str = s.replace(/[^A-Za-z0-9]/g, '').toLowerCase(); let leftPtr = str.length - 1; let ptrArr = new Object(); let forwardsPalindrome = true; let boolbackwardsPalindrome = true; for (let i = 0; i < str.length; i++) { let char = str[i]; let backChar = str[leftPtr]; if (char !== backChar) { ptrArr[i] = char; ptrArr[leftPtr] = backChar; } leftPtr--; } if (JSON.stringify(ptrArr) !== '{}') { console.log(ptrArr); for(let prop in ptrArr) { //console.log(prop); leftPtr = str.length - 1; for (let i = 0; i < str.length; i++) { let char = str[i]; let backChar = str[leftPtr]; //console.log("Char: " + char + " Back: " + backChar) if (char !== backChar) { //console.log("Char: " + char + " Back: " + backChar + " I: " + i + " LeftPointer: " + leftPtr) console.log(" I: " + i + " Prop: " + prop) if (i == prop) { console.log(str); let leftPtr2 = str.length - 1; let halfStr = Math.floor(str.length / 2); console.log("halfStr: " + halfStr); for (let j = 0; j < str.length; j++) { let char2 = str[j]; let backChar2 = str[leftPtr2]; console.log("Char: " + char2 + " Back: " + backChar2 + " J: " + j + " LeftPointer: " + leftPtr2) if (j == i) { console.log("j == i") char2 = str[j+1]; if (char2 !== backChar2) { console.log(" Char: " + char2 + " BackChar: " + backChar2 + " j: " + j + " I: " + i) //return false; forwardsPalindrome = false; } } else if (leftPtr2 == i) { console.log("Left Pointer2 == i") backChar2 = str[leftPtr2-1]; if (char2 !== backChar2) { console.log(" Char: " + char2 + " BackChar: " + backChar2 + " Left Pointer2: " + leftPtr2 + " I: " + i) //return false; backwardsPalindrome = false; } } if (i == halfStr || backChar2 == halfStr) { if (forwardsPalindrome == false && backwardsPalindrome == false) { return false; } } /**/ leftPtr2--; } } } leftPtr--; } //return false; } } 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("abccdba")) //true //console.log(isAlmostPalindrome("abcdefdba")) //false ! //console.log(isAlmostPalindrome("")) //true //console.log(isAlmostPalindrome("a")) //true console.log(isAlmostPalindrome("ab")) //true
Editor Settings
Theme
Key bindings
Full width
Lines