Write a function to determine whether a given string is a palindrome. A palindrome is a string that reads the same forwards and backwards, ignoring case and spaces.
Input: str = "xox"
Output: true
Input: str = "aman"
Output: false
function isPalindromeUsingSplitReverseJoin(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
return cleanedStr === cleanedStr.split("").reverse().join("");
}function isPalindromeUsingForLoop(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
let left = 0;
let right = cleanedStr.length - 1;
while (left < right) {
if (cleanedStr[left] !== cleanedStr[right]) return false;
left++;
right--;
}
return true;
}function isPalindromeUsingWhileLoop(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
let start = 0;
let end = cleanedStr.length - 1;
while (start < end) {
if (cleanedStr[start] !== cleanedStr[end]) return false;
start++;
end--;
}
return true;
}function isPalindromeUsingEvery(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
return [...cleanedStr].every((char, index) => char === cleanedStr[cleanedStr.length - 1 - index]);
}function isPalindromeUsingReduce(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
return cleanedStr.split("").reduce((isPalin, char, index) => isPalin && char === cleanedStr[cleanedStr.length - 1 - index], true);
}function isPalindromeUsingMatch(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
const reversedStr = cleanedStr.split("").reverse().join("");
return reversedStr === cleanedStr;
}function isPalindromeUsingRecursion(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
function checkPalindrome(left, right) {
if (left >= right) return true;
if (cleanedStr[left] !== cleanedStr[right]) return false;
return checkPalindrome(left + 1, right - 1);
}
return checkPalindrome(0, cleanedStr.length - 1);
}function isPalindromeUsingTwoPointer(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
let left = 0;
let right = cleanedStr.length - 1;
while (left < right) {
if (cleanedStr[left] !== cleanedStr[right]) return false;
left++;
right--;
}
return true;
}function isPalindromeUsingReplace(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
const reversedStr = cleanedStr.split("").reverse().join("");
return cleanedStr === reversedStr;
}function isPalindromeUsingSet(str) {
const cleanedStr = str.replace(/\s+/g, '').toLowerCase();
const length = cleanedStr.length;
return Array.from({ length }).every((_, i) => cleanedStr[i] === cleanedStr[length - 1 - i]);
}