LeetCode 409. 最长回文串 (Longest Palindrome)[简单]

lework · 2020年06月08日 · 最后由 lework 回复于 2020年06月08日 · 109 次阅读

给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。

在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。

注意: 假设字符串的长度不会超过 1010。

示例 1:

输入:
"abccccdd"

输出:
7

解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindrome 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def longestPalindrome(self, s: str) -> int:
        d = {}
        for i in range(len(s)):
            if s[i] not in d:
                d[s[i]] = 1
            else:
                d[s[i]] += 1
        count = 0
        for j in d:
            count += d[j] // 2 * 2
            if d[j] % 2 == 1 and count % 2 == 0:
                count += 1
        return count
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册