题目描述

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

注意:
假设字符串的长度不会超过 1010。

示例

输入:
“abccccdd”

输出:
7

解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

源代码

思路:
刚开始我以为奇数最多项最多只能只能存在一个,结果想了好久,实在想不通样例为什么不给过,最后看了答案,恍然大悟,
当有多个奇数项存在时,最长的一个奇数项留下,其余的奇数项减一就可以了(。。。我快吐了)
就是下方的经典的一行代码解决:
ans+=count/2*2;

class Solution {public:int longestPalindrome(string s) {int n=s.size();int ans=0;unordered_map<char,int> m;for(int i=0;i<n;i++) m[s[i]]++;  for(auto it=m.begin();it!=m.end();it++){int count=it->second;ans+=count/2*2;if(count%2==1&&ans%2==0) ans++; }return ans;}
};

复杂度分析:

  • 时间复杂度:O(N),其中 N 为字符串 s 的长度。我们需要遍历每个字符一次。

  • 空间复杂度:O(S),其中 S 为字符集大小。由于题目中保证了给定的字符串 s 只包含大小写字母,因此我们也可以使用哈希映射(HashMap)来存储每个字符出现的次数,最多只会存储 52 个(即小写字母与大写字母的数量之和)键值对。

力扣-409 最长回文串相关推荐

  1. 力扣--让字符串成为回文串的最少插入次数

    力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...

  2. LeetCode解题记录(409)——最长回文串

    LeetCode解题记录--最长回文串 题目描述 示例 题目理解 解题思路 题目描述 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比 ...

  3. LeetCode 409. 最长回文串(构造最长回文判断)

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

  4. LeetCode 409. 最长回文串(计数)

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

  5. LeetCode 409. 最长回文串

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

  6. 2022-4-2 Leetcode 409.最长回文串

    第一版,不知道为啥有问题 记录所有的偶数,并且加上一个最大的奇数 class Solution {public:int longestPalindrome(string s) {int cnt = 0 ...

  7. 伍六七带你学算法 入门篇-最长回文串

    力扣解题,每日一题:409. 最长回文串 难度- 简单 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" ...

  8. LeetCode最长回文串

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

  9. python【力扣LeetCode算法题库】409-最长回文串(数学 计数器)

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

  10. 力扣2131——连接两字母单词得到的最长回文串(贪心+哈希表)

    题目(中等) 给你一个字符串数组 words .words 中每个元素都是一个包含 两个 小写英文字母的单词. 请你从 words 中选择一些元素并按 任意顺序 连接它们,并得到一个 尽可能长的回文串 ...

最新文章

  1. urlrewrite使用小结
  2. 超声射频信号的产生(RF Signal)
  3. linux第一次防火墙
  4. 【渝粤教育】 国家开放大学2020年春季 1021劳动与社会保障法 参考试题
  5. zzulioj 1065:统计数字字符个数
  6. 机器学习(7)——Logistic回归(从疝气病症预测病马的死亡率)
  7. FTP/文件传输协议
  8. 药店计算机无法运行整改报告,药店整改报告模板网络版(电子版)
  9. char* char [] 区别[zz]
  10. Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法
  11. 二级c语言 文件题,二级C语言题库文件.doc
  12. postman下载使用教程
  13. 计算机网络工程专业大学排名,2020网络工程专业大学排名
  14. 十年老撕鸡分享,五分钟搭建个人轻论坛
  15. win10打开游戏提示你的图形硬件不支持怎么办
  16. CentOS 下安装Mplayer播放器(转载)
  17. Python中最强大的错误重试库
  18. hadoop 2.6遇到的DataNode无法启动问题
  19. FTP与TFTP介绍
  20. linux全角和半角的切换,全角和半角

热门文章

  1. Microsoft Office Mobile 2010 Beta 于 4 月 5 日过期
  2. c# 中实用包,实用dll。
  3. https 单向认证和双向认证配置
  4. Windows Phone开发之路(6) XAML基础(下)
  5. Silverlight 5 强袭 !! 圣临王者之三端大一统
  6. 一个MYSQL PDO相对完整且功能强大的封装类
  7. keyphrase抽取论文在聊什么?
  8. 火遍日本 IT 界的「鱼书」终出续作,原来进阶深度学习竟然那么简单(文末赠书)...
  9. 一文教你如何深入机器学习,从编程基础到完整的项目实战
  10. 【收藏】李纪为:初入NLP领域的一些小建议