a: 1, ...">
美文网首页
409. 最长回文串

409. 最长回文串

作者: lazy_ccccat | 来源:发表于2020-03-19 20:59 被阅读0次

题目描述

409. 最长回文串

思路

题目不难,就是所有的坑我都踩进去了。
"abccccdd" -> a: 1, b:1, d:2, c:4
我的思路是 偶数个数的直接相加,然后奇数里面选最大的就是答案:2+4+1=7.
但是有些样例过不了,看了别人的解释:

  1. 如果某字母有偶数个,因为偶数有对称性,可以把它全部用来构造回文串;但如果是奇数个的话,并不是完全不可以用来构建,也不是只能选最长的那个,而是只要砍掉1个,剩下的变成偶数就可以全部计入了
  2. 但奇数字母里,可以保留1个不砍,把它作为回文串的中心,所以最后还要再加回一个1
  3. 但是!如果压根没有奇数的情况,这个1也不能随便加,所以还要分情况讨论。用了flag。

代码

class Solution {
public:
    int longestPalindrome(string s) {
        unordered_map<char, int> m;
        for (char c : s) {
            m[c]++;
        }
        int res = 0;
        int single = 0;
        int flag = false;
        for (auto it = m.begin(); it != m.end(); it++) {
            if (it->second % 2 == 0) {
                res += it->second;
            } else {
                flag = true;
                res = res + it->second - 1;
            }
        }
        return flag ? res + 1 : res;

    }
};

相关文章

  • 409.最长回文串

    409. 最长回文串[https://leetcode.cn/problems/longest-palindrom...

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

  • 手撕LeetCode #409——Python

    409. 最长回文串[https://leetcode-cn.com/problems/longest-palin...

  • Leetcode 409 最长回文串

    409. 最长回文串[https://leetcode-cn.com/problems/longest-palin...

  • Leetcode409最长回文串--Python3

    409. 最长回文串 难度简单 解答: 语言:python 用字典进行统计长度,回文字符串的长度= 偶数个字符长度...

  • 409. 最长回文串

    题目描述 409. 最长回文串 思路 题目不难,就是所有的坑我都踩进去了。"abccccdd" -> a: 1, ...

  • 409. 最长回文串

    内容 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小...

  • 409. 最长回文串

    题目 我刚开始的想法 因为题目要求的是输出长度,并不需要将最长的回文字串数出来,所以很显然是一道找规律的题目,回文...

  • 409. 最长回文串

    解题思路 既然是求最长回文串,那么左右字符个数应该对称。对于偶数个字符来说,正好可以左右排列;而对于奇数个字符来说...

  • 409. 最长回文串

网友评论

      本文标题:409. 最长回文串

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