LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次

Posted Pistachiout

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次相关的知识,希望对你有一定的参考价值。

解题思路

桶装法,字母出现偶数次一定可以计入总长度,再用count记录所有奇数余1次数,最后用长度减去count+1,因为所有的余1只能留下一个当中心

代码

class Solution 
       public int longestPalindrome(String s) 
        // 找出可以构成最长回文串的长度
        int[] arr = new int[128];
        for(char c : s.toCharArray()) 
            arr[c]++;
        
        int count = 0;
        for (int i : arr) 
            count += (i % 2);//比如有5个a,可以取4个a形成回文串,count记录所有奇数余1次数,最后只能加1次
        
        return count == 0 ? s.length() : (s.length() - count + 1);
    
//s.toCharArray

以上是关于LeetCode409. 最长回文串,利用桶装法,偶数直接加入总数,且对于奇数仅记录一次的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 409. 最长回文串

leetcode每日一题:409. 最长回文串

LeetCode--409--最长回文串

LeetCode409 最长回文串

LeetCode 409. 最长回文串

LeetCode 0409. 最长回文串