JSFiddle - React, Tailwind, and code Playground
by M. Junaid Salaat
JavaScript
function fancy(s,i) {
return(i=i||0)<0||i>=s.length>>1||s[i]==s[s.length-1-i]&&fancy(s,++i);
}
function standard(str) {
return str == str.split('').reverse().join('');
}
function kiss(str) {
var len = Math.floor(str.length / 2);
for (var i = 0; i < len; i++)
if (str[i] !== str[str.length - i - 1])
return false;
return true;
}
function isScrambledPalindrome( input ) {
var chars = {};
input.split("").forEach(function(char) {
if (chars[char]) {
delete chars[char]
}
else {
chars[char] = "odd"
}
});
return (Object.keys(chars).length <= 1);
}
function clockTime(fn) {
var dt = new Date();
var max = 1000000;
for(var i = 0; i < max; i++) {
fn('racecar');
}
return Date.now() - dt.getTime();
}
console.log({
'keeping it simple': clockTime(isScrambledPalindrome),
'keeping it simple': clockTime(kiss)
});