Leetcode•Apr 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;
};