美文网首页
LeetCode 第 409 题:最长回文串

LeetCode 第 409 题:最长回文串

作者: 放开那个BUG | 来源:发表于2023-02-16 21:48 被阅读0次

    1、前言

    image.png

    2、思路

    这道题不可能让你先组合一堆回文串,然后让你计算出最大回文串的长度,因为时间复杂度会爆炸。所以要找到回文串的规律:回文串分为奇数个和偶数个,只需要获取字符出现次数的偶数即可。因为奇数只有一次,所以只需要记一次。

    3、代码

    class Solution {
        public int longestPalindrome(String s) {
            Map<Character, Integer> map = new HashMap<>();
            for(char ch : s.toCharArray()){
                map.put(ch, map.getOrDefault(ch, 0) + 1);
            }
    
            int res = 0, odd = 0;
            for(Character ch : map.keySet()){
                int fre =  map.get(ch);
                res += fre / 2 * 2;
                if(fre % 2 == 1){
                    odd = 1;
                }
            }
            return res + odd;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode 第 409 题:最长回文串

          本文链接:https://www.haomeiwen.com/subject/yiskurtx.html