# 409. Longest Palindrome
# # Tóm tắt đề bài
Cho một chuỗi s chứa các chữ cái tiếng Anh, trả về độ dài của chuỗi palindrome lớn nhất tạo ra từ các kí tự trong chuỗi s đó.
### Giới hạn
- 1 <= s.length <= 2000
## Lời giải
- Có 2 loại chuỗi palindrome: độ dài chẵn hoặc lẻ.
- Sử dụng HashMap để đếm số lần xuất hiện của từng kí tự trong chuỗi s.
- Nếu đếm đến số chẵn lần xuất hiện của kí tự đó, ta thêm 2 vào kết quả trả về (vì 1 chuỗi palindrome bất kì có thể thêm 2 kí tự giống hệt nhau, 1 vào đầu và 1 vào cuối và nó vẫn là chuỗi palindrome)
- Nếu như có bất kì kí tự nào có lẻ lần xuất hiện => thêm 1 vào kết quả trả về (vì chuỗi palindrome độ dài lẻ chấp nhận kí tự ở chính giữa có lẻ lần xuất hiện).
### Độ phức tạp thuật toán
Thời gian: $O(N)$
Bộ nhớ: $O(N)$
### Code tham khảo
```c++
class Solution:
def longestPalindrome(self, s: str) -> int:
cnt = defaultdict(int)
res = 0
for c in s:
cnt[c] += 1
if cnt[c] % 2 == 0:
res += 2
for count in cnt.values():
if count % 2:
res += 1
break
return res
```