每日OJ题_贪心算法二⑥_力扣409. 最长回文串

news/2024/9/24 11:42:46/

目录

力扣409. 最长回文串

解析代码


力扣409. 最长回文串

409. 最长回文串

难度 简单

给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。

在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。

示例 1:

输入:s = "abccccdd"
输出:7
解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

示例 2:

输入:s = "a"
输出:1

示例 3:

输入:s = "aaaaaccc"
输出:7

提示:

  • 1 <= s.length <= 2000
  • s 只由小写 和/或 大写英文字母组成
class Solution {
public:int longestPalindrome(string s) {}
};

解析代码

贪心策略:用尽可能多的字符去构造回文串:

  • 如果字符出现偶数个,那么全部都可以用来构造回文串。
  • 如果字符出现奇数个,减去一个之后,剩下的字符能够全部用来构造回文串。
  • 最后再判断⼀下,如果有字符出现奇数个,就把它单独拿出来放在中间。
class Solution {
public:int longestPalindrome(string s) {int ret = 0;int hash[123] = { 0 }; //⽤数组模拟哈希表计数,ASCII码最大127,z是122for(auto& e : s){hash[e]++;}for(auto& e : hash){ret += (e / 2 * 2); // 奇数就去掉1再乘2}return ret == s.size() ? ret : ret + 1; // 不足原长度就有奇数}
};


http://www.ppmy.cn/news/1451343.html

相关文章

centos7安装真的Redmine-5.1.2+ruby-3.0.0

下载redmine-5.1.2.tar.gz&#xff0c;上传到/usr/local/目录下 cd /usr/local/ tar -zxf redmine-5.1.2.tar.gz cd redmine-5.1.2 cp config/database.yml.example config/database.yml 配置数据连接 #编辑配置文件 vi config/database.yml #修改后的内容如下 product…

远程仓库管理

远程仓库管理 GitHub、GitLab、Gitee账户注册与配置 无论是GitHub、GitLab还是Gitee&#xff0c;注册和配置账户的过程都相对简单。根据您的需求选择其中一个平台&#xff0c;并按照上述步骤进行操作即可开始使用。 拉取&#xff08;pull&#xff09;操作的步骤如下&#xff1…

汉译英早操练-(二十五)

汉译英早操练-&#xff08;十九&#xff09;-CSDN博客 汉译英早操练-(二十)-CSDN博客 汉译英早操练-&#xff08;二十一&#xff09;-CSDN博客 汉译英早操练-&#xff08;二十二&#xff09;-CSDN博客 汉译英早操练-&#xff08;二十三&#xff09;-CSDN博客 汉译英早操练…

【模板】二维前缀和

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 二维前缀和&#xff1a;pre[i][j]a[i][j]pre[i-1][j]pre[i][j-1]-pre[i-1][j-1]; 子矩阵 左上角为(x1,y1) 右下角(x2,y2…

游戏名台词大赏

文章目录 原神&#xff08;圈内&#xff09; 崩坏&#xff1a;星穹铁道&#xff08;圈内&#xff09; 崩坏3&#xff08;圈内&#xff09; 原神 只要不失去你的崇高&#xff0c;整个世界都会为你敞开。 总有地上的生灵&#xff0c;敢于直面雷霆的威光。 谁也没有见过风&#…

springboot3整合redis

redis在我们的日常开发中是必不可少的&#xff0c;本次来介绍使用spring boot整合redis实现一些基本的操作&#xff1b; 1、新建一个spring boot项目&#xff0c;并导入相应的依赖&#xff1b; <dependency><groupId>org.springframework.boot</groupId><…

【Redis】Redis安装、配置、卸载使用可视化工具连接Redis

文章目录 1.前置条件2.安装Redis2.1下载Redis安装包并解压2.2在redis目录下执行make命令2.3修改Redis配置文件2.4启动Redis服务2.5连接redis服务 3.Redis卸载4.使用可视化工具连接Redis 1.前置条件 Linux操作系统需要要是64位.如果不清楚自己Linux上是多少位的,可以使用以下命…

【AI学习】人工智能 or 人造智能 or 人创智能

刚刚读完了《十堂极简人工智能课》这本书&#xff0c;非常精彩的一本书&#xff0c;用非常简短的篇幅&#xff0c;几乎涵盖了人工智能发展的所有重要历程、重要路径和方法、重要观点以及重要问题&#xff0c;将技术以一种哲学思考的方式深入浅出的讲述&#xff0c;实在难得&…