LintCode python 简单题-627最长回文串

给出一个包含大小写字母的字符串。求出由这些字母构成的最长的回文串的长度是多少。

数据是大小写敏感的,也就是说,"Aa" 并不会被认为是一个回文串。
注意事项

假设字符串的长度不会超过 1010。
您在真实的面试中是否遇到过这个题?
样例

给出 s = "abccccdd" 返回 7

一种可以构建出来的最长回文串方案是 "dccaccd"。

class Solution:
    """
    @param: s: a string which consists of lowercase or uppercase letters
    @return: the length of the longest palindromes that can be built
    """
    def longestPalindrome(self, s):
        # write your code here
        s_set = set([x for x in s])
        s_len = len(s)
        count = 0
        
        for x in s_set:
            if s.count(x)%2 != 0:     #判断有多少个基数对
                count += 1
                
        if count == 0:
            return s_len               #全是偶数对,则本身是最长回文数
        else:
            return s_len-count+1  #有多个基数对的话,最多放一个在中间,剩下的基数对都减去1变成偶数对。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最长回文串问题是一个经典的算法题。 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果...
    曾会玩阅读 4,095评论 2 25
  • 最长回文子串——Manacher 算法 1. 问题定义 最长回文字符串问题:给定一个字符串,求它的最长回文子串长度...
    林大鹏阅读 2,807评论 0 6
  • 标签(空格分隔): 算法 C++ 笔试 第三题:描述小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈。于是他...
    认真学计算机阅读 1,955评论 0 8
  • mkdir /mnt/ramdiskmount -t tmpfs tmpfs /mnt/ramdisk -o s...
    残风疏影阅读 206评论 0 0
  • 前段时间看报纸,说洛阳最新品种的牡丹,是以厦门大学的一个女生邓琴的名字命名的。邓琴何以能命名牡丹的名字?原来她参与...
    郑州小强阅读 308评论 0 2