LeetCode 409—— 最长回文串

阅读目录

    • 1. 题目
    • 2. 解题思路
    • 3. 代码实现

1. 题目

2. 解题思路

要想组成回文串,那么只有最中间的字符可以是奇数个,其余字符都必须是偶数个。

所以,我们先遍历一遍字符串,统计出每个字符出现的次数。

然后如果某个字符出现了偶数次,那么回文串长度就增加这个字符出现的次数;如果某个字符出现了奇数次,那么回文串长度也只能增加小于这个奇数次的最大偶数。

最后,如果存在奇数个的字符,那么中间可以放一个奇数字符,回文串长度加 1。

3. 代码实现

class Solution {
public:int longestPalindrome(string s) {vector<int> alphabet_num(54, 0);for (size_t i = 0; i < s.size(); ++i) {int idx = 0;if (s[i] >= 'a' && s[i] <= 'z') {idx = s[i] - 'a';} else if (s[i] >= 'A' && s[i] <= 'Z') {idx = s[i] - 'A' + 26;}alphabet_num[idx]++;}int ret = 0;bool has_odd = false;for (size_t i = 0; i < alphabet_num.size(); ++i) {ret += (alphabet_num[i] / 2) * 2;if (alphabet_num[i] % 2 != 0) {has_odd = true;}}if (has_odd) {ret += 1;}return ret;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/625417.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xcode c++项目设置运行时参数

在 Xcode 项目中&#xff0c;你可以通过配置 scheme 来指定在运行时传递的参数。以下是在 Xcode 中设置运行时参数的步骤&#xff1a; 打开 Xcode&#xff0c;并打开你的项目。在 Xcode 菜单栏中&#xff0c;选择 "Product" -> "Scheme" -> "E…

滤波器笔记(杂乱)

线性相位是时间平移&#xff0c;相位不失真 零、基础知识 1、用相量表示正弦量 https://zhuanlan.zhihu.com/p/345546880 https://www.zhihu.com/question/347763932/answer/1103938667 A s i n ( ω t θ ) ⇔ A e j θ ⇔ A ∠ θ Asin(\omega t\theta) {\Leftrightarrow…

[沫忘录]MySQL索引

[沫忘录]MySQL索引 索引概述 优点 提高数据检索效率&#xff0c;降低数据库IO成本通过索引对数据进行排序&#xff0c;降低数据排序成本&#xff0c;降低CPU消耗 缺点 索引会占用一定空间当更新数据时&#xff0c;也需更新索引数据&#xff0c;这会降低数据的更新效率 索引…

Visual Studio 2019 社区版下载

一、网址 https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes#start-window 二、选择这个即可

负载均衡原理、算法与实现方式

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、什么是负载均衡 2、负载均衡的应用场…

科技驱动未来,提升AI算力,GPU扩展正当时

要说这两年最火的科技是什么&#xff1f;我想“AI人工智能”肯定是最有资格上榜的&#xff0c;尤其ChatGPT推出后迅速在社交媒体上走红&#xff0c;短短5天&#xff0c;注册用户数就超过100万&#xff0c;2023年一月末&#xff0c;ChatGPT的月活用户更是突破1亿&#xff0c;成为…

QQ怎么远程控制自己的电脑

QQ怎么远程控制自己的电脑 在日常生活和工作中&#xff0c;我们有时可能需要在不同的地点远程控制自己的电脑。QQ作为一款广受欢迎的即时通讯软件&#xff0c;提供了远程桌面功能&#xff0c;使得用户可以轻松实现对自己电脑的远程控制。下面就来介绍一下如何使用QQ远程控制自…

深度学习 Lecture 7 迁移学习、精确率、召回率和F1评分

一、迁移学习&#xff08;Transfer learning) 用来自不同任务的数据来帮助我解决当前任务。 场景&#xff1a;比如现在我想要识别从0到9度手写数字&#xff0c;但是我没有那么多手写数字的带标签数据。我可以找到一个很大的数据集&#xff0c;比如有一百万张图片的猫、狗、汽…

HCIA--综合实验(超详细)

要求&#xff1a; 1. 使用172.16.0.0/16划分网络 2.使用ospf协议合理规划区域保证更新安全 3.加快收敛速度 4. r1为DR没有BDR 5.PC2&#xff0c;3&#xff0c;4&#xff0c;5自动获取IP地址&#xff1b;PC1为外网&#xff0c;PC要求可用互相访问 6.r7为运营商&#xff0c;只能配…

【Windows10】Anaconda3安装+pytorch+tensorflow+pycharm

文章目录 一、下载anaconda0.双击下载的文件1. 选择All users2. 安装路径3. 勾选环境变量和安装python4.安装完成5.添加环境变量6.测试是否安装成功 二、安装pytorch&#xff08;先看四&#xff01;先检查一下自己电脑是不是只能安装GPU版的1.查看conda图形化界面2.在安装pytor…

Adobe AE(After Effects)2020下载地址及安装教程

Adobe After Effects是一款专业级别的视觉效果和动态图形处理软件&#xff0c;由Adobe Systems开发。它被广泛用于电影、电视节目、广告和其他多媒体项目的制作。 After Effects提供了强大的合成和特效功能&#xff0c;可以让用户创建出令人惊艳的动态图形和视觉效果。用户可以…

计算机网络3——数据链路层2 使用广播信道的数据链路层

文章目录 一、局域网的数据链路层1、介绍2、有点3、类别4、共享通信5、传统以太网 二、CSMACD协议1、介绍2、通信原理3、措施1&#xff09;CSMA/CD2&#xff09;曼彻斯特(Manchester)编码 4、CSMA/CD 协议的要点5、总结 三、使用集线器的星形拓扑1、介绍2、集线器特点 四、以太…