Given a string s of upper- and lowercase letters, return the length of the longest palindrome that can be built from its letters (case-sensitive).
Walk the string, keeping the set of characters seen an odd number of times. Seeing one already in the set completes a pair (+2).
1function longestPalindrome(s: string): number {2const open = new Set<string>();3let len = 0;4for (const c of s) {5if (open.has(c)) { open.delete(c); len += 2; }6else open.add(c);7}8return len + (open.size ? 1 : 0);9}
No unpaired characters yet.
Space: play/pause · ←/→: step