leetcode每日一题:409. 最长回文串
注意:
输入:
输出:
解释:
法1:先排好序,然后遍历一遍,左右相同的就可以凑成一对,最后再判断一下能否再加一个单个的,如果没达到字符串长度,那就可以在回文穿中间加一个单个的字符
class Solution {
public:
int longestPalindrome(string s) {
sort(s.begin(),s.end());
int cnt=0;
for(int i=1;i<s.length();i++){
if(s[i]==s[i-1]){
cnt+=2;
i++;
}
}
if(cnt<s.length())cnt++;
return cnt;
}
};
法2:利用桶排序的思想,然后获取每个字符出现的次数,对次数进行/2*2处理,这样本来是5的最后就得到4,构成两对,然后再判断能否在中间加一个单独的。
class Solution {
public:
int longestPalindrome(string s) {
unordered_map<char,int>count;
int cnt=0;
for(char c:s){
count[c]++;
}
for(auto p:count){
int v=p.second;
cnt+=v/2*2;
}
if(cnt<s.length())cnt++;
return cnt;
}
};
leetcode每日一题:409. 最长回文串的更多相关文章
- Java实现 LeetCode 409 最长回文串
409. 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意 ...
- leetcode 每日签到 409. 最长回文串
题目: 最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: ...
- LeetCode随缘刷题之最长回文子串
这一题我用的相对比较笨的方法. 相对于大佬们用的动态规划法,比较复杂.但却更容易理解,我主要是通过记录下标来确定最长回文串的. package leetcode.day_12_06; /** * 给你 ...
- leetcode.字符串.409最长回文串-Java
1. 具体题目 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设 ...
- C#LeetCode刷题之#409-最长回文串(Longest Palindrome)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3788 访问. 给定一个包含大写字母和小写字母的字符串,找到通过这 ...
- LeetCode 409——最长回文串
1. 题目 2. 解答 我们先来看一看回文子串的规律,如果回文子串的长度为偶数,那么其中所有的每个元素都出现了偶数次:如果回文子串的长度为奇数,那么有一个元素出现了奇数次而其余每个元素都出现了偶数次. ...
- [LeetCode每日一题]1143. 最长公共子序列
[LeetCode每日一题]1143. 最长公共子序列 问题 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串 ...
- Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法)
Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法) Given a string s, find the longest pal ...
- [LeetCode] 516. Longest Palindromic Subsequence 最长回文子序列
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- Manacher算法 - 求最长回文串的利器
求最长回文串的利器 - Manacher算法 Manacher主要是用来求某个字符串的最长回文子串. 不要被manacher这个名字吓倒了,其实manacher算法很简单,也很容易理解,程序短,时间复 ...
随机推荐
- kafka 为什么能那么快?高效读写数据,原来是这样做到的
1. 利用 Partition 实现并行处理 我们都知道 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic. Topic 只是一个逻辑的概念.每个 Topic ...
- rust简要笔记
第一个程序, 我们不用安装编辑器,直接在现成的网页编辑器上运行 https://play.rust-lang.org/
- C++ Qt开发:QNetworkAccessManager网络接口组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QNe ...
- 英语单词 重读 注意第六条 类似tion前面的重读这种的
单词音节重读的10个基本判断规则: 1.一个单词只有一个重读音节 无论该单词有多少个音节(syllable),其重读音节只有一个,而且都在元音上,辅音不重读.单音节词也重读,只是省略了重音符号.如:b ...
- 微型MPU6050模块及串口/BLE透传的实物展示
前言 随着时间的积累,项目的沉淀.把很多做过的产品标准化掉,形成可以立即拿出来使用的产品.是非常重要的一个环节.最近,把基于MPU6050的模块微型化并使用串口透传这个产品梳理了一下.形成了标准化 ...
- 专访OV季军|毕业转为freelancer,他如何斩获大量CG奖项?
"新锐先锋,玩转未来"--首届实时渲染3D动画创作大赛由瑞云科技主办,英伟达.青椒云.3DCAT实时渲染云协办,戴尔科技集团.Reallusion.英迈.万生华态.D5渲染器.中视 ...
- 记录--uni-app实现蓝牙打印小票
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 说明 基于uni-app开发,调用官方蓝牙相关api实现连接蓝牙与向蓝牙热敏打印机发送字节流,可打印文字,二维码,图片,调整字体大小等,本 ...
- 记录--什么时候会阻塞HTML文档渲染过程?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 HTML页面加载过程会发生什么?因为浏览器网络拉取资源是多线程的,但是dom树的操作都是在一个线程中的,所以网页资源的解析.js加载.do ...
- KingbaseES V8R6 集群运维系列 -- trusted_server
案例说明: 在KingbaseES V8R3及V8R6早期的版本,对于读写分离的集群如果网关地址无法连通,将会导致整个集群关闭,数据库服务无法访问.在后期版本的改进中,降低了对网关的依赖性,当网关地址 ...
- KingbaseES date 数据类型的两种格式
关于date 数据类型,Oracle 与 PostgreSQL 格式是不同的,Oracle 是 日期 + 时间的类型,而PG 则只有日期.KingbaseES Oracle 模式则同时实现了二者类型, ...