auto-generated entry for Longest Palindrome. the solution files are available below.
solution files
- C++
longest-palindrome/synced-solution.cpp - Python
longest-palindrome/synced-solution.py - TypeScript
longest-palindrome/synced-solution.ts
Collected C++, Python, TypeScript solutions for longest palindrome. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for Longest Palindrome. the solution files are available below.
longest-palindrome/synced-solution.cpplongest-palindrome/synced-solution.pylongest-palindrome/synced-solution.tsdef longestPalindrome(s):
from collections import Counter
char_count = Counter(s)
length = class="syntax-number">0
has_odd = False
for count in char_count.values():
length += (count class=class="syntax-string">"syntax-comment">// class="syntax-number">2) * class="syntax-number">2
if count % class="syntax-number">2 == class="syntax-number">1:
has_odd = True
return length + (class="syntax-number">1 if has_odd else class="syntax-number">0)
class Solution {
public:
int longestPalindrome(string s) {
unordered_map<char, int> count;
for (char c : s) {
count[c]++;
}
int length = class="syntax-number">0;
bool has_odd = false;
for (auto& p : count) {
length += (p.second / class="syntax-number">2) * class="syntax-number">2;
if (p.second % class="syntax-number">2 == class="syntax-number">1) {
has_odd = true;
}
}
return length + (has_odd ? class="syntax-number">1 : class="syntax-number">0);
}
};
function longestPalindrome(s: string): number {
const count = new Map<string, number>();
for (const char of s) {
count.set(char, (count.get(char) || class="syntax-number">0) + class="syntax-number">1);
}
let length = class="syntax-number">0;
let hasOdd = false;
for (const cnt of count.values()) {
length += Math.floor(cnt / class="syntax-number">2) * class="syntax-number">2;
if (cnt % class="syntax-number">2 === class="syntax-number">1) {
hasOdd = true;
}
}
return length + (hasOdd ? class="syntax-number">1 : class="syntax-number">0);
}