⬇️
L = -
Expanding...
⬇️
R = -
🏆 Longest Palindrome Found
-
Select a center rune to begin
⚡
📜 Expansion Steps
Click on a rune to select it as the center, then click "Expand from Center"
Basic
BABAD
Even
CBBD
Classic
RACECAR
Challenge
ABACDFGDCABA
💡 Center Expansion Algorithm
function longestPalindrome(s) { if (s.length < 2) return s; let start
= 0, maxLen = 1; // Try each position as center for (let i = 0; i <
s.length; i++) { // Odd length expansion (single center) let [len1,
s1] = expandAroundCenter(s, i, i); // Even length expansion (double
center) let [len2, s2] = expandAroundCenter(s, i, i + 1); // Update if
we found longer palindrome if (len1 > maxLen) { maxLen = len1; start =
s1; } if (len2 > maxLen) { maxLen = len2; start = s2; } } return
s.substring(start, start + maxLen); } function expandAroundCenter(s,
left, right) { // Expand while characters match while (left >= 0 &&
right < s.length && s[left] === s[right]) { left--; // L-- right++; //
R++ } // Return length and start position // After loop: left and
right are one past the palindrome let length = right - left - 1; let
start = left + 1; return [length, start]; }