leetcode每日一题 python解法 3月19日

2020-03-19  本文已影响0人  Never肥宅

难度:简单

题目内容:

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

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

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

示例 1:

输入:
"abccccdd"

输出:
7

解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。
emmm找成对的添加最后如果有剩下的再在中间塞个单个的就行了,蛮简单的
collection是真的好用

class Solution:
    def longestPalindrome(self, s):
        ans = 0
        count = collections.Counter(s)
        for v in count.values():
            ans += v // 2 * 2
            if ans % 2 == 0 and v % 2 == 1:
                ans += 1
        return ans
上一篇下一篇

猜你喜欢

热点阅读