Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,917 questions

51,850 answers

573 users

How to find longest palindrome substring in JavaScript

2 Answers

0 votes
function longestPalindromeSubstring(str) {
    const len = str.length;
    let longestLength = 1;
    let start = 0;
    
    for (let i = 0; i < len; i++) {
        for (let j = i; j < len; j++) {
            let palindrome = 1;
            for (let k = 0; k < (j - i + 1) / 2; k++) {
                if (str[i + k] != str[j - k]) {
                    palindrome = 0;
                }
            }
            if (palindrome != 0 && (j - i + 1) > longestLength) {
                start = i;
                longestLength = j - i + 1;
            }
        }
    }
        
    let s = "";
    for (let i = start; i <= start + longestLength - 1; i++) {
        s += str[i];
    }
    console.log("Longest palindrome substring = " + s);
    
    return longestLength;
}

const str = "qabcbaproggorpxyyxzv";
const result = longestPalindromeSubstring(str);
console.log("Length palindrome substring length = " + result);




/*
run:

"Longest palindrome substring = proggorp"
"Length palindrome substring length = 8"

*/

 



answered Jun 4, 2023 by avibootz
0 votes
function longestPalindromeSubstring(s) {
    if (s.length <= 1) return s; // If string length is 0 or 1, it's already a palindrome

    let start = 0, maxLength = 0;

    // Helper function to expand around the center and find the longest palindrome
    function expandAroundCenter(left, right) {
        while (left >= 0 && right < s.length && s[left] === s[right]) {
            left--;
            right++;
        }
        // Return the length of the palindrome
        return right - left - 1;
    }

    for (let i = 0; i < s.length; i++) {
        // Check for odd-length palindrome
        let len1 = expandAroundCenter(i, i);
        // Check for even-length palindrome
        let len2 = expandAroundCenter(i, i + 1);

        // Find the maximum palindrome length
        let len = Math.max(len1, len2);
        if (len > maxLength) {
            maxLength = len;
            start = i - Math.floor((len - 1) / 2);
        }
    }

    // Return the longest palindromic substring
    return s.substring(start, start + maxLength);
}

console.log(longestPalindromeSubstring("qabcbaproggorpxyyxzv"));
console.log(longestPalindromeSubstring("abcdedcbaqabcbaproggorpxyyxzv"));



/*
run:

proggorp
abcdedcba

*/

 



answered Apr 7, 2025 by avibootz
...