LeetCode409:字符串中元素可组成的回文字符串最大长度

问题409:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如Aa不能当做一个回文字符串。

这题首先统计字符串中每个字符出现次数k,如果为偶数,则可以使用全部k个;如果为奇数。则使用k-1个。然而,注意,整个回文字符串正中间可以有一个独立字符。

完整代码:

class Solution:
    def longestPalindrome(self, s: str) -> int:
        dic = {}
        for c in s:
            dic[c] = dic.get(c, 0) + 1
            
        ans = 0
        for v in dic.values():
            ans += v//2*2
            if v%2 == 1 and ans%2 == 0:
                ans += 1
        return ans

运行结果:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容