isAlmostPalindromeWrong3

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; let compareArr = new Array(); let forwardArr = new Array(); let backwardArr = new Array(); 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--; } console.log(str); 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 <= halfStr; 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") if(str.length !== 3) { char2 = str[j+1]; } forwardArr.push(char2); } else if (leftPtr2 == i) { console.log("Left Pointer2 == i") backChar2 = str[leftPtr2-1]; backwardArr.push(backChar2); } else { forwardArr.push(char2); backwardArr.push(backChar2); } //let hhgf = halfStr - 1; //console.log("halfStr-1): " + hhgf) if (j == halfStr-1 && str.length != 3) { console.log(forwardArr); console.log(backwardArr); //console.log("J: " + j + " halfStr: " + halfStr + " LeftPtr: " + leftPtr); for (let letter in forwardArr) { compareArr.push(forwardArr[letter]); } for (let k = backwardArr.length-1; k >= 0; k--) { // for (let letter2 in backwardArr) { //compareArr.push(backwardArr[letter2]); compareArr.push(backwardArr[k]); } let compareStr = compareArr.join(""); console.log("Compare Arr: " + compareArr); console.log("Compare Str: " + compareStr); let rev = ""; // generate a reverse string using a reverse for loop. for(let l = compareStr.length - 1; l >= 0; l--) { rev += compareStr[l]; } console.log("Reverse: " + rev) if (rev === compareStr) { return true; } } 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("abca")) //true //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("eedede")) //true //console.log(isAlmostPalindrome("abc")) //false //console.log(isAlmostPalindrome("A man, a plan, a canal: Padama")) //false
Editor Settings
Theme
Key bindings
Full width
Lines