680.验证回文串||

embedded/2025/2/4 19:41:14/

解题思路

最多删除一个字符使其成为回文串,首先根据回文串的特点,即两边互相对应。
因此判断的方法可以有两种:

  • 翻转后两个字符串相同,是回文串
  • 使用双指针进行判断

这里需要涉及删除,因此使用双指针,l和r,假设l不等于r,则l++,同时记录删除字符的个数cnt–,如果第二次遇到l不等于r,则不能成为一个回文串,反之则可以。
上面的分析存在漏洞,当l和r所处位置不能构成回文串时,有两种做法,一种是删除l位置的字符,则l++,另一种是删除r位置的字符则r–,当这两种做法至少有一个是回文串则能够继续进行。

java">class Solution {public boolean validPalindrome(String s) {// 获取长度int len = s.length();int left = 0, right = len - 1;// 双指针while(left < right){// 取出字符串中的字符char c1 = s.charAt(left), c2 = s.charAt(right);// 判断if (c1 == c2){++left;--right;}else {// 不相等则递归return validPalindrome(s, left, right-1) || validPalindrome(s, left+1, right);}}return true;}public boolean validPalindrome(String s, int left, int right){// 该函数只需要判断两种情况能否满足是回文串for (int i = left, j = right; i < j; ++i, --j){char c1 = s.charAt(i), c2 = s.charAt(j);if (c1 != c2){return false;}}return true;}
}

http://www.ppmy.cn/embedded/159551.html

相关文章

第一章 什么是JavaScript

第一章 什么是JavaScript 1. 历史梗概2. JavaScript的实现&#xff08;ECMAScript、DOM、BOM&#xff09;2.1 ECMAScript2.2 DOM&#xff08;文档对象模型&#xff09;2.3 BOM&#xff08;浏览器对象模型&#xff0c;在第12章会有详细介绍&#xff09; 3. 支持&#xff08;所有…

MySQL锁详解

MySQL锁详解 数据库的锁机制锁的分类行级锁与表级锁行级锁之共享锁与排他锁乐观锁与悲观锁悲观锁乐观锁 Innodb存储引擎的锁机制行级锁与表级锁的使用区分三种行锁的算法死锁的问题多版本并发控制MVCC 数据库的锁机制 什么是锁&#xff1f;锁是一种保障数据的机制 为何要用锁…

2025年2月2日(tcp3次握手4次挥手)

TCP&#xff08;三次握手和四次挥手&#xff09;是建立和关闭网络连接的标准过程&#xff0c;确保数据在传输过程中可靠无误。下面是详细解释&#xff1a; 1. 三次握手&#xff08;TCP连接建立过程&#xff09; 三次握手是为了在客户端和服务器之间建立一个可靠的连接&#x…

Mac上的虚拟化软件推荐

在Mac上运行虚拟化软件是一个非常实用的选择,可以满足不同用户的需求,包括运行Windows操作系统、Linux系统或开发环境等。以下是几款推荐的虚拟化软件及其特点: 1. Parallels Desktop 适用平台:Intel和Apple M系列Mac电脑。功能:支持Windows、Linux和macOS等多种操作系统…

【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)

羑悻的小杀马特.-CSDN博客羑悻的小杀马特.擅长C/C题海汇总,AI学习,c的不归之路,等方面的知识,羑悻的小杀马特.关注算法,c,c语言,青少年编程领域.https://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_82648291?typebbshttps://blog.csdn.net/2401_8264829…

(leetcode 213 打家劫舍ii)

代码随想录&#xff1a; 将一个线性数组换成两个线性数组&#xff08;去掉头&#xff0c;去掉尾&#xff09; 分别求两个线性数组的最大值 最后求这两个数组的最大值 代码随想录视频 #include<iostream> #include<vector> #include<algorithm> //nums:2,…

飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用

重点:无刷外转子电机与无框力矩电机&#xff1a;技术解析与应用对比 在现代工业自动化和精密机械领域&#xff0c;无刷电机因其高效、低噪音和高可靠性而备受青睐。其中&#xff0c;无刷外转子电机和无框力矩电机更是以其独特的结构和性能特点&#xff0c;成为众多应用场景中的…

Linux中基于RPM安装YUM的另一种方式

在Linux系统中&#xff0c;YUM&#xff08;Yellowdog Updater, Modified&#xff09;是一个广泛使用的软件包管理工具&#xff0c;主要用于Red Hat系的发行版&#xff08;如RHEL、CentOS、Fedora&#xff09;。虽然YUM通常是通过预装或者在线仓库安装&#xff0c;但在某些情况下…