【LeetCode】409. 最长回文串

news2024/11/15 18:01:53

409. 最长回文串(简单)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

方法:哈希表 + 贪心

思路

  • 不难发现,回文字符串一定是由 若干偶数个字符 + 至多一个奇数个字符 组成 。
  • 我们可以使用一个长度为 128 的 hash表来记录每一个字符的出现次数,当该字符出现了两次,它一定能作为最大长度的回文子串的一部分,因此将 ans += 2,并将其赋值为 0。
  • 在完成对 s 的遍历后,我们需要检查 hash表中是否还有次数为 1 的字符,它可以作为回文子串的中心,如果有的话,最大长度 + 1 。

代码

class Solution {
public:
    int longestPalindrome(string s) {
        vector<char> hashTable(128);
        int ans = 0;
        for(char ch : s) {
            hashTable[ch]++;
            // 该字符出现了两次,一定可以放在回文子串的两边
            if(hashTable[ch] == 2) {
                ans += 2;
                hashTable[ch] = 0;
            }
        }
        for(char h : hashTable) {
            if(h == 1) {
                ans += 1;
                break;
            }
        }
        return ans;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业想用CRM提高销售业绩该如何操作?

在当今市场环境中&#xff0c;客户的需求更偏向于个性化&#xff0c;企业面对的竞争更加激烈。如何有效地获取和维护客户&#xff0c;提高收入成为了企业的核心问题。作为一种强大的销售管理工具&#xff0c;CRM如何提高销售业绩&#xff1f; 提高客户转化率&#xff1a; 企业…

Day50|动态规划part11:188.买卖股票的最佳时机IV、123. 买卖股票的最佳时机III

188. 买卖股票的最佳时机IV leetcode链接&#xff1a;188 题「买卖股票的最佳时机 IVopen in new window」 视频链接&#xff1a;动态规划来决定最佳时机&#xff0c;至多可以买卖K次&#xff01;| LeetCode&#xff1a;188.买卖股票最佳时机4 给你一个整数数组 prices 和一…

基于ssm车库智能管理平台源码和论文

基于ssm车库智能管理平台源码和论文092 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 选题的根据&#xff1a;1&#xff09;说明本选题的理论、实际意义 2&#xff09;综述国内外有关本选题的研究动态和自己…

【LeetCode75】第四十一题 二叉搜索树中的搜索

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个搜索二叉树&#xff0c;让我们找出节点值等于目标的节点并返回出去。 首先我们可以直接遍历整棵二叉树&#xff0c;找到值…

Mybatis2,注解实现CRUD

2&#xff0c;注解实现CRUD 使用注解开发会比配置文件开发更加方便。如下就是使用注解进行开发 Select(value "select * from tb_user where id #{id}") public User select(int id);注意&#xff1a; 注解是用来替换映射配置文件方式配置的&#xff0c;所以使用了…

使用 Privoxy 在 Linux 上配置本地代理服务器详细教程

Privoxy 是一个功能强大的开源网络代理软件&#xff0c;它可以帮助我们在 Linux 系统上搭建本地代理服务器。通过配置和使用 Privoxy&#xff0c;您可以实现更安全、匿名以及自定义过滤规则等高级特性。本文将详细介绍如何在 Linux 环境下利用 Privoxy 配置并运行本地代理服务器…

文字转语音怎么转?几种简单转换方法快速转换

将文本转换为语音&#xff0c;可以帮助那些有视觉障碍的人士更便捷地获取信息&#xff0c;以便于听觉上的理解和处理。对于那些需要进行多任务处理的人士&#xff0c;例如在开车或做家务时需要获取信息的人&#xff0c;文字转语音也可以提供便利。那么怎么将文字转换成语音呢&a…

【100天精通python】Day47:python网络编程_Web编程,前后端以及静态服务器

目录 1 网络编程与web编程 1.1 网络编程 1.2 web编程 1.3 前后端交互的基本原理 2 Web开发基础 2.1 HTTP协议 2.2 Web服务器 2.3 前端基础 2.3.1 HTML&#xff08;超文本标记语言&#xff09; 2. 3.2 CSS&#xff08;层叠样式表&#xff09; 2.3.3 JavaScript 2.…

【pyqt5界面化工具开发-1】运行界面程序框架+按钮+文本+位置的设置

目录 一、运行界面化框架 二、基础控件 目标1&#xff1a;新增按钮 目标2&#xff1a;新增文本&#xff1a; 目标3&#xff1a;设置位置 一、运行界面化框架 import sysfrom PyQt5.QtWidgets import QApplication,QWidgetif __name__ __main__:# 接收参数&#xff08;仅…

数据库的备份与分类以及日志

目录 1、数据库的概念 1.1、数据备份的重要性 1.2、造成数据丢失的原因 1.3、 数据库备份的分类 1.3.1、从物理与逻辑的角度&#xff0c; 1.3.2、原理图 1.3.3.1 完全备份&#xff1a; 1.3.2.2 差异备份 1.2.3.3、 增量备份 1.3.3、 备份方式比较 1.4、常见的备份方…

pdf转word怎么进行转换?这几种转换技巧别错过

pdf转word怎么进行转换&#xff1f;将PDF转换为Word文档可以带来很多便利。一些人可能需要编辑PDF文件中的文本或者图片&#xff0c;但是PDF文件通常不易于编辑。将PDF文件转换为Word文档之后&#xff0c;就可以像编辑普通Word文档一样轻松地编辑它们。那么今天小编就来给大家介…

计算机竞赛 基于机器视觉的火车票识别系统

文章目录 0 前言1 课题意义课题难点&#xff1a; 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖&#xff0c;适合作为竞赛…

IntelliJ IDEA2021.3.1 使用 MybatisCodeHelperPro插件

一、 下载 下载破解后的 MybatisCodeHelperPro 的 V3.2.2版本 V3.2.2-CSDN 或者 V3.2.2-Gitee 二、 应用 将下载下来的Zip文件 放到电脑上的某个位置 (最好放在Idea 管理插件的 plugins 下) 然后自从搜索 Idea如何从磁盘中应用插件 三、激活 由于已经破解过了 但是还是需要激活…

基于信息增益的特征重要性分析

培训和测试样本 用于模型评估的数据集包括8652个F1杂交玉米样本&#xff0c;这些样本具有测量的抽穗天数&#xff08;DTT&#xff09;、株高&#xff08;PH&#xff09;和穗重&#xff08;EW&#xff09;表型&#xff0c;这些表型来自母体库和30名父系测试者小组的杂交&#x…

服务报network error错误

问题&#xff1a;服务请求时会偶发性的报【network error网络超时】&#xff08;请求瞬间就报&#xff09; 可能原因&#xff1a; 服务器linux内核调优时将&#xff1a;net.ipv4.tcp_tw_recycle设置为1&#xff0c;开启TCP连接中TIME-WAIT sockets的快速回收&#xff0c;默认为…

GNU make系列之介绍Makefile(0)

一.欢迎来到我的酒馆 在本章节介绍Makefile。 目录 一.欢迎来到我的酒馆二.GNU make 预览三.一个简单的Makefile四.make程序如何处理Makefile文件五.在Makefile中使用变量 二.GNU make 预览 2.1 GNU make工具会自动决定哪些程序需要被重新编译&#xff0c;并且执行相应的命令来…

彩虹外链网盘V5.5更新 支持批量封禁/优化加载速度

彩虹外链网盘V5.5更新 支持批量封禁/优化加载速度 彩虹外链网盘&#xff0c;是一款PHP网盘与外链分享程序&#xff0c;支持所有格式文件的上传&#xff0c;可以生成文件外链、图片外链、音乐视频外链&#xff0c;生成外链同时自动生成相应的UBB代码和HTML代码&#xff0c;还可…

Mybatis1.7 修改

1.7 修改 1.7.1 编写接口方法1.7.2 编写SQL语句1.7.3 编写测试方法 如图所示是修改页面&#xff0c;用户在该页面书写需要修改的数据&#xff0c;点击 提交 按钮&#xff0c;就会将数据库中对应的数据进行修改。注意一点&#xff0c;如果哪儿个输入框没有输入内容&#xff0c;我…

苹果手机怎么录音?分享2个简单方法

录音软件能够帮助我们记录学习和工作中一些重要的笔记、讲座、课堂语录、音乐灵感等等。录制完成后它会自动生成文件&#xff0c;可供人们随时随地进行听阅。 但对于刚使用苹果手机的用户来说&#xff0c;他们还不太熟悉苹果系统&#xff0c;所以找不到语音备忘录在哪里。那么…

Linux CentOS7sed的替换及逆转功能

在各项工作&#xff0c;需要大量的文本处理。有时&#xff0c;想把文件按行翻转一下&#xff0c;最后一行显示在第一行&#xff0c;倒数第二行显示在正数第二行&#xff0c;等等。这是行的逆转要求&#xff0c;可以通过命令tac对文件操作&#xff0c;达到目的&#xff1b;有时&…