力扣-409 最长回文串
题目描述
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 “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 最长回文串相关推荐
- 力扣--让字符串成为回文串的最少插入次数
力扣–让字符串成为回文串的最少插入次数 文章目录 力扣--让字符串成为回文串的最少插入次数 一.题目描述 二.分析 三.代码 相关题目: 腾讯–构造回文:腾讯–构造回文 最长回文子串和回文链表:最长回 ...
- LeetCode解题记录(409)——最长回文串
LeetCode解题记录--最长回文串 题目描述 示例 题目理解 解题思路 题目描述 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比 ...
- LeetCode 409. 最长回文串(构造最长回文判断)
最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字 ...
- LeetCode 409. 最长回文串(计数)
1. 题目 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字 ...
- LeetCode 409. 最长回文串
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...
- 2022-4-2 Leetcode 409.最长回文串
第一版,不知道为啥有问题 记录所有的偶数,并且加上一个最大的奇数 class Solution {public:int longestPalindrome(string s) {int cnt = 0 ...
- 伍六七带你学算法 入门篇-最长回文串
力扣解题,每日一题:409. 最长回文串 难度- 简单 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" ...
- LeetCode最长回文串
409. 最长回文串 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 . 在构造过程中,请注意 区分大小写 .比如 "Aa" 不能当做一个回 ...
- python【力扣LeetCode算法题库】409-最长回文串(数学 计数器)
最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字 ...
- 力扣2131——连接两字母单词得到的最长回文串(贪心+哈希表)
题目(中等) 给你一个字符串数组 words .words 中每个元素都是一个包含 两个 小写英文字母的单词. 请你从 words 中选择一些元素并按 任意顺序 连接它们,并得到一个 尽可能长的回文串 ...
最新文章
- urlrewrite使用小结
- 超声射频信号的产生(RF Signal)
- linux第一次防火墙
- 【渝粤教育】 国家开放大学2020年春季 1021劳动与社会保障法 参考试题
- zzulioj 1065:统计数字字符个数
- 机器学习(7)——Logistic回归(从疝气病症预测病马的死亡率)
- FTP/文件传输协议
- 药店计算机无法运行整改报告,药店整改报告模板网络版(电子版)
- char* char [] 区别[zz]
- Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法
- 二级c语言 文件题,二级C语言题库文件.doc
- postman下载使用教程
- 计算机网络工程专业大学排名,2020网络工程专业大学排名
- 十年老撕鸡分享,五分钟搭建个人轻论坛
- win10打开游戏提示你的图形硬件不支持怎么办
- CentOS 下安装Mplayer播放器(转载)
- Python中最强大的错误重试库
- hadoop 2.6遇到的DataNode无法启动问题
- FTP与TFTP介绍
- linux全角和半角的切换,全角和半角
热门文章
- Microsoft Office Mobile 2010 Beta 于 4 月 5 日过期
- c# 中实用包,实用dll。
- https 单向认证和双向认证配置
- Windows Phone开发之路(6) XAML基础(下)
- Silverlight 5 强袭 !! 圣临王者之三端大一统
- 一个MYSQL PDO相对完整且功能强大的封装类
- keyphrase抽取论文在聊什么?
- 火遍日本 IT 界的「鱼书」终出续作,原来进阶深度学习竟然那么简单(文末赠书)...
- 一文教你如何深入机器学习,从编程基础到完整的项目实战
- 【收藏】李纪为:初入NLP领域的一些小建议