LeetCode 0680.验证回文串 II:两侧向中间,不同就试删

ops/2025/2/5 14:19:42/

【LetMeFly】680.验证回文串 II:两侧向中间,不同就试删

力扣题目链接:https://leetcode.cn/problems/valid-palindrome-ii/

给你一个字符串 s最多 可以从中删除一个字符。

请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false

 

示例 1:

输入:s = "aba"
输出:true

示例 2:

输入:s = "abca"
输出:true
解释:你可以删除字符 'c' 。

示例 3:

输入:s = "abc"
输出:false

 

提示:

  • 1 <= s.length <= 105
  • s 由小写英文字母组成

解题方法:遍历

从两边到中间遍历字符串,如果当前两个字符不相同,就尝试删除其中的一个(并判断删除后中间剩下的字符串是否是回文字符串)。

如果删除一个或零个能成为回文字符串,则返回true

  • 时间复杂度 O ( l e n ( s ) ) O(len(s)) O(len(s))
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-02-03 08:52:33* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-03 08:57:47*/
class Solution {
private:bool isOk(string& s, int l, int r) {for (; l < r; l++, r--) {if (s[l] != s[r]) {return false;}}return true;}
public:bool validPalindrome(string& s) {for (int i = 0, j = s.size() - 1; i < j; i++, j--) {if (s[i] != s[j]) {return isOk(s, i, j - 1) || isOk(s, i + 1, j);}}return true;}
};
Python
'''
Author: LetMeFly
Date: 2025-02-03 08:57:31
LastEditors: LetMeFly.xyz
LastEditTime: 2025-02-03 08:59:26
'''
class Solution:def isOk(self, s: str, l: int, r: int) -> bool:while l < r:if s[l] != s[r]:return Falsel += 1r -= 1return Truedef validPalindrome(self, s: str) -> bool:l, r = 0, len(s) - 1while l < r:if s[l] != s[r]:return self.isOk(s, l, r - 1) or self.isOk(s, l + 1, r)l += 1r -= 1return True
Java
/** @Author: LetMeFly* @Date: 2025-02-03 08:57:34* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-03 09:01:29*/
class Solution {private boolean isOk(String s, int l, int r) {for (; l < r; l++, r--) {if (s.charAt(l) != s.charAt(r)) {return false;}}return true;}public boolean validPalindrome(String s) {for (int l = 0, r = s.length() - 1; l < r; l++, r--) {if (s.charAt(l) != s.charAt(r)) {return isOk(s, l, r - 1) || isOk(s, l + 1, r);}}return true;}
}
Go
/** @Author: LetMeFly* @Date: 2025-02-03 08:57:46* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-03 09:05:54*/
package mainfunc isOk_VP(s string, l, r int) bool {for ; l < r; l, r = l + 1, r - 1 {if s[l] != s[r] {return false}}return true
}func validPalindrome(s string) bool {for l, r := 0, len(s) - 1; l < r; l, r = l + 1, r - 1 {if s[l] != s[r] {return isOk_VP(s, l, r - 1) || isOk_VP(s, l + 1, r)}}return true
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/145427404


http://www.ppmy.cn/ops/155892.html

相关文章

利用deepseek参与软件测试 基本架构如何 又该在什么环节接入deepseek

利用DeepSeek参与软件测试&#xff0c;可以考虑以下基本架构和接入环节&#xff1a; ### 基本架构 - **数据层** - **测试数据存储**&#xff1a;用于存放各种测试数据&#xff0c;包括正常输入数据、边界值数据、异常数据等&#xff0c;这些数据可以作为DeepSeek的输入&…

理解PLT表和GOT表

1 简介 现代操作系统都是通过库来进行代码复用&#xff0c;降低开发成本提升系统整体效率。而库主要分为两种&#xff0c;一种是静态库&#xff0c;比如windows的.lib文件&#xff0c;macos的.a&#xff0c;linux的.a&#xff0c;另一种是动态库&#xff0c;比如windows的dll文…

MFC开发,给对话框添加垂直滚动条并解决鼠标滚动响应的问题

无论在使用QT或者MFC进行界面开发时&#xff0c;都会出现在一个对话框里面存在好多的选项&#xff0c;导致对话框变得非常长或者非常大&#xff0c;就会显现的不美观&#xff0c;在这种情况下通常是添加一个页面的滚动条来解决这个问题&#xff0c;下面我们就来介绍给MFC的对话…

llama.cpp的C语言API使用

我们知道&#xff0c;一般运行大语言模型都是在Python上运行的&#xff0c;可是Python的性能太差了&#xff0c;不适合用于生产环境&#xff0c;因此可以采用llama.cpp提供的API在C语言上运行大模型。 llama.cpp的下载 Windows下的下载 我们需要下载llama.cpp的两个部分&…

编程AI深度实战:AI编程工具哪个好? Copilot vs Cursor vs Cody vs Supermaven vs Aider

​ 系列文章: 编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客 编程AI深度实战:自己的AI,必会LangChain-CSDN博客 编程AI深度实战:给vim装上AI-CSDN博客 编程AI深度实战:火的编程AI,都在用语法树(AST)-CSDN博客 编程AI深度实战:让verilog不再是 AI …

C#,shell32 + 调用控制面板项(.Cpl)实现“新建快捷方式对话框”(全网首发)

Made By 于子轩&#xff0c;2025.2.2 不管是使用System.IO命名空间下的File类来创建快捷方式文件&#xff0c;或是使用Windows Script Host对象创建快捷方式&#xff0c;亦或是使用Shell32对象创建快捷方式&#xff0c;都对用户很不友好&#xff0c;今天小编为大家带来一种全新…

llama.cpp GGUF 模型格式

llama.cpp GGUF 模型格式 1. Specification1.1. GGUF Naming Convention (命名规则)1.1.1. Validating Above Naming Convention 1.2. File Structure 2. Standardized key-value pairs2.1. General2.1.1. Required2.1.2. General metadata2.1.3. Source metadata 2.2. LLM2.2.…

如可安装部署haproxy+keeyalived高可用集群

第一步&#xff0c;环境准备 服务 IP 描述 Keepalived vip Haproxy 负载均衡 主服务器 Rip&#xff1a;192..168.244.101 Vip&#xff1a;192.168.244.100 Keepalive主节点 Keepalive作为高可用 Haproxy作为4 或7层负载均衡 Keepalived vip Haproxy 负载均衡 备用服务…