class Solution {
public:
int longestPalindrome(string s) {
}
};
409. 最长回文串
给定一个包含大写字母和小写字母的字符串 s
,返回 通过这些字母构造成的 最长的回文串 。
在构造过程中,请注意 区分大小写 。比如 "Aa"
不能当做一个回文字符串。
示例 1:
输入:s = "abccccdd" 输出:7 解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。
示例 2:
输入:s = "a" 输入:1
提示:
1 <= s.length <= 2000
s
只由小写 和/或 大写英文字母组成相似题目
原站题解
python3 解法, 执行用时: 52 ms, 内存消耗: 14.9 MB, 提交时间: 2022-07-11 10:38:41
class Solution: def longestPalindrome(self, s: str) -> int: _mp = defaultdict(int) for c in s: _mp[c] += 1 res = 0 for k, v in _mp.items(): res += v//2 * 2 if v % 2 == 1 and res % 2 == 0: res += 1 return res
golang 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2021-08-05 17:35:55
func longestPalindrome(s string) int { mp := make([]int, 58) for _, c := range s { mp[c-'A']++ } res := 0 for _, cnt := range mp { res += cnt/2 * 2 if cnt % 2 == 1 && res % 2 == 0 { res++ } } return res }