JSFiddle - React, Tailwind, and code Playground

by Rishabh Sharma

JavaScript

function isPalindrome (str) {
	return reverse(str) === str;
}

function reverse(str) {
	let reverseStr = '';
	for(let i = str.length; i >= 0; i--) {
  	reverseStr += str.charAt(i);
  }
  return reverseStr;
}

function longestPalindrome(str) {
	let palindromeList = [];
	for(let i = 0; i < str.length; i++) {
  	for(let j = str.length; j >= i; j--) {
    	if(j > i + 1 && isPalindrome(str.substring(i, j))) {
      	palindromeList.push(str.substring(i, j));
      }
    }
  }
  
  console.log(palindromeList);
  
  if(palindromeList.length) {
    let longestPalindrome = palindromeList[0];
    palindromeList.forEach(palindrome => {
    	if(palindrome.length > longestPalindrome.length) {
      	longestPalindrome = palindrome;
      }
    });
    console.log('longest palindrome is: ', longestPalindrome);
  } else {
  	console.log('string has no palindromes!');
  }
}

longestPalindrome('madam is great, but madadam is even greater mandadnam!');