Post your Palindrome solutions here!

Here is the soluction I came up with:


function palindrome(str) {
    const clean = str.toLowerCase().replace(/[^a-z0-9]/g, '');
    const strReverse = clean.split('').reverse().join('');
    return clean == strReverse;
}
console.log(palindrome("0_0 (: /-\ :) 0-0"));
1 Like

hey All, check out my solution here:

function palindrome(str) {

  let alphaNum = /[^A-Za-z0-9]/g; //regex  

  let stripStr = str.replace(alphaNum, ""); //remove non-alphanumeric

  let strToUpper = stripStr.toUpperCase();//string to upper case

  let arrayStrToUpper = strToUpper.split(""); //string to array

  

  //debugging the above string and array

  console.log(strToUpper);

  console.log(arrayStrToUpper); 

  

  let revStrArray = arrayStrToUpper.reverse();//reverse array

  let newStr = revStrArray.join("");//array to string

  

  //debugging the above string and array

  console.log(newStr);

  console.log(revStrArray);

  //conditional test for palindrome

  if (newStr == strToUpper) {

        return true;

      } 

  else {

        return false;

      }

}

palindrome("eye");

palindrome("race car");

palindrome("_eye");

palindrome("0_0 (: /-\ :) 0-0");

console.log(palindrome("not a palindrome"));`Preformatted text`

So it was supposed to be an application of the learnings from the first 3 sections. But it was hard for me not to use a join array method in the if statement :laughing:

// 🎉 Completed on 3-23-22 D22_W4_R1 of #100DaysOfCode
function palindrome(str) {
    let upStr = str.toUpperCase(); // uppercase
    let regex = /[A-Z0-9]/gi; // capital letters and numbers only
    let regArr = upStr.match(regex); // original order in array form
    let length = regArr.length - 1; // total elements - zero based
    let newArr = []; // storage for the reversed order

    for(let j = length; j >= 0; j--){ // j starts as the last element
        newArr.push(regArr[j]); // j pushed into the array (reverse order)
        if(newArr.join() === regArr.join()){ // join to make 'em string
            return true;     
        }
    }
    return false;
}
console.log(palindrome("almostomla"));