LeetcodeApr 17, 2025

Longest Palindrome

Hazrat Ali

Leetcode

Given a string s which consists of lowercase or uppercase letters, return the length of the longest  that can be built with those letters.

Letters are case sensitive, for example, "Aa" is not considered a palindrome.

 

Example 1:

Input: s = "abccccdd"
Output: 7
Explanation: One longest palindrome that can be built is "dccaccd", whose length is 7.

Example 2:

Input: s = "a"
Output: 1
Explanation: The longest palindrome that can be built is "a", whose length is 1.

 

Constraints:

  • 1 <= s.length <= 2000
  • s consists of lowercase and/or uppercase English letters only.

 

Solution

/**
 * @param {string} s
 * @return {number}
 */
const longestPalindrome = s => {
  const set = new Set();
  let count = 0; // count of pair

  for (let c of s) {
    if (set.has(c)) {
      set.delete(c);
      count++; // found a pair
    } else {
      set.add(c);
    }
  }

  return set.size > 0 ? 2 * count + 1 : 2 * count;
};

 

 

Comments