JSFiddle - React, Tailwind, and code Playground

by Sagar Bendale

HTML

<div id="log">

</div>
<script>
   (function() {
      var logger = document.getElementById('log');
      log = function(message) {
         if (typeof message == 'object') {
            logger.innerHTML += (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />';
         } else {
            logger.innerHTML += message + '<br />';
         }
      }
   })();

</script>

CSS

* {
   background: #20262E;
   color: #eee
}

JavaScript

console.clear();
/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function(s) {
   var subs = {

   }
   if (s) {
      let len = s.length;
      let i = 0;
      let sub = s.charAt(i);
      let mainSub = sub;
      while (i < s.length) {
         if (isPalindrome(sub)) {
            if (mainSub.length < sub.length) {
               mainSub = sub;
            }
            sub = sub + s.charAt(++i);
         } else {
            sub = sub.substring(1);
         }
      }
      if (isPalindrome(sub)) {
         return sub.length > mainSub.length ? sub : mainSub;
      } else {
         sub = sub.substring(0, sub.length - 1);
         return sub.length > mainSub.length ? sub : mainSub;
      }
   }
   return s;
}

var isPalindrome = function(s) {
   if (s) {
      for (let i = 0, j = s.length - 1; i <= s.length / 2, j >= s.length / 2; i++, j--) {
         if (s.charAt(i) !== s.charAt(j)) {
            return false;
         }
      }
      return true;
   }
   return s = null || s != undefined;
}

log(isPalindrome('11211'));
log(longestPalindrome('11211'));