入口

力扣https://leetcode.cn/problems/valid-palindrome-ii/submissions/

题目描述

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

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

示例 1:

输入:s = "aba"
        输出:true
示例 2:

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

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

提示:

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

方法一:贪心

解题思路 

回文字符串定义:"正读和反读都一样,中心对称的字符串"。贪心思想的最优子结构:贪心字符串边缘两个位置的字符串相同与否,相同可以继续运算,不同则非回文字符串。

Java示例

class Solution {
public boolean validPalindrome(String s) {
int low =0,heigh = s.length() - 1;
while(low<heigh){
char c1 = s.charAt(low);
char c2 = s.charAt(heigh);
if(c1==c2) {
++low;
--heigh;
}else{
return validPalindrome(s,low+1,heigh) || validPalindrome(s,low,heigh-1);
}
}
return true;
}
public boolean validPalindrome(String s,int low,int heigh) {
while(low<heigh){
char c1 = s.charAt(low);
char c2 = s.charAt(heigh);
if(c1!=c2) { return false; }else{
++low;--heigh;
}
}
return true;
} }

复杂度分析

时间复杂度:O(n)
空间复杂度:O(1)

[每日算法 - 华为机试] leetcode680. 验证回文串 II的更多相关文章

  1. 前端与算法 leetcode 125. 验证回文串

    目录 # 前端与算法 leetcode 125. 验证回文串 题目描述 概要 提示 解析 解法一:api侠 解法二:双指针 算法 传入测试用例的运行结果 执行结果 GitHub仓库 查看更多 # 前端 ...

  2. LeetCode:验证回文串【125】

    LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...

  3. 力扣(LeetCode)验证回文串 个人题解

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...

  4. Java实现 LeetCode 125 验证回文串

    125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...

  5. leetcode125. 验证回文串 python 简单

    125. 验证回文串 难度简单     给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...

  6. lintcode-108-分割回文串 II

    108-分割回文串 II 给定一个字符串s,将s分割成一些子串,使每个子串都是回文. 返回s符合要求的的最少分割次数. 样例 比如,给出字符串s = "aab", 返回 1, 因为 ...

  7. Java实现 LeetCode 132 分割回文串 II(二)

    132. 分割回文串 II 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回符合要求的最少分割次数. 示例: 输入: "aab" 输出: 1 解释: 进行一 ...

  8. 【LeetCode】——分割回文串II

    继续与动态规划斗智斗勇... 132. 分割回文串 II - 力扣(LeetCode) (leetcode-cn.com) 分析:记f[i]表示将字符串s[0:i]分割的最小次数.我们需要将列举出在[ ...

  9. LeetCode(125):验证回文串

    Easy! 题目描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, ...

  10. [Swift]LeetCode125. 验证回文串 | Valid Palindrome

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

随机推荐

  1. 数字世界中的纸张——理解 PDF (转载)

    转载自 https://type.cyhsu.xyz/2018/09/understanding-pdf-the-digitalized-paper/ 引言 PDF 是我们打交道最多的文件格式之一.提 ...

  2. CDS标准视图:维护活动类型 I_MaintenanceActivityType

    视图名称:维护活动类型 I_MaintenanceActivityType 视图类型:基础 视图代码: 点击查看代码 @ObjectModel.supportedCapabilities: [ #AN ...

  3. G1原理—6.G1垃圾回收过程之Full GC

    大纲 1.FGC的一些前置处理 2.FGC的整体流程 3.传统FGC只能串行化 + G1的FGC可以并发化 4.并行化FGC之并行标记 + 任务窃取 5.并行化FGC之跨分区压缩 + 避免对象跨分区 ...

  4. 218:解释LINUX文件系统权限

  5. delphi编写sql脚本文件批量执行程序

    程序使用DelphiXE11.1开发,用到控件UniDac9.1.1,QDAC里面的Qlog组件. 程序实现了SQL脚本文件批处理执行应用,运行效果图. 文件.pas代码 unit main; int ...

  6. flutter-使用flutter_app_upgrade进行版本更新要点

  7. 【整活向】把tidb的文档塞给了基于oceanbase的RAG机器人

    最近官方推出了免费试用365天的云数据库,版本也升级到了4.3.支持了向量功能. 官方推出了活动体验AI的动手实战活动, 教程中使用了docker单机版数据库,既然有免费的云数据库,就优先使用云数据库 ...

  8. css快速入门系列 —— 移动开发闲谈

    移动开发闲谈(Flex和css 库) 背景 目前在做移动小程序开发,效果必须和设计稿一模一样,一个像素都不能有差异. 虽然公司也提供了图生文的工具,但是有时生成的代码可读性不太好,二次修改也比较费劲, ...

  9. [ABC213G] Connectivity 2 题解

    好好好. 我们设当前处理 \(i\) 的答案,那么最后的图就可以分成两个部分:\(1\) 所在的联通块和其他,根据乘法原理,答案就是它们二者方案的乘积. 设 \(f_s\) 表示集合 \(s\) 中所 ...

  10. YASKAWA安川机器人DX100轴控制基板维修解析知识

    ASKAWA安川机器人DX100轴控制基板的维修是一项复杂而精细的工作,要求具备丰富的知识和实践经验.通过与子锐机器人维修联系,希望能企业提供一些有益的参考和帮助,在面对轴板故障时能够迅速准确地找到问 ...