当前位置: 首页 > news >正文

day49—双指针+贪心—验证回文串(LeetCode-680)

题目描述

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

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

解决方案:

1、首尾向内收缩遍历:会出现删除左字符还是右字符的问题,解决:先假设删除一边

2、检查函数:检查删除后,剩余的字符是否符合题意

3、取或:讨论两种状态下,只要满足一个即可,故用或运算。

函数源码:

class Solution {
public:bool check(const string& s, int l, int r) {for (int i = l, j = r; i < j; i++, j--) {if (s[i] != s[j]) {return false;}}return true;}bool validPalindrome(string s) {int l = 0, r = s.size() - 1;while (l < r) {char c1 = s[l], c2 = s[r];if (c1 == c2) {l++;r--;} else {return check(s, l, r - 1) || check(s, l + 1, r);}}return true;}
};

相关文章:

  • 基于Node+HeadlessBrowser的浏览器自动化方案
  • 多模态(3):实战 GPT-4o 视频理解
  • APP和小程序需要注册域名吗?(国科云)
  • kubesphere 单节点启动 etcd 报错
  • 【数据可视化-33】病毒式社交媒体潮流与用户参与度可视化分析
  • 解决视频处理中的 HEVC 解码错误:Could not find ref with POC xxx【已解决】
  • 线程池参数配置
  • RK3588芯片NPU的使用:yolov8-pose例子图片检测在安卓系统部署与源码深度解析(rknn api)
  • 【Hive入门】Hive数据导出完全指南:从HDFS到本地文件系统的专业实践
  • form表单提交前设置请求头request header及文件下载
  • 佐航BYQ2321直阻变比二合一全面升级!
  • Linux进程地址空间
  • Zephyr kernel Build System (CMake)介绍
  • 如何配置Spark
  • 技术视界 | 从自然中获取智慧: 仿生机器人如何学会“像动物一样思考和行动”
  • 基于 Python(selenium) 的今日头条定向爬虫:根据输入的关键词在今日头条上进行搜索,并爬取新闻详情页的内容
  • 使用spring boot vue 上传mp4转码为dash并播放
  • Pycharm(六):可变与不可变类型
  • 3.3 Spring Boot文件上传
  • 2025年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
  • 女儿被偷拍后,一个父亲的战斗
  • 驻美国使馆发言人就美方希就关税问题与中方对话答记者问
  • 波音CEO称中方因中美“贸易战”停止接收波音飞机,外交部回应
  • 新《火灾统计管理规定》即将施行,火灾死亡统计时限延长
  • 停止水资源共享、驱逐武官,印度对巴基斯坦宣布多项反制措施
  • 专家解读上海一季度经济数据:经济韧性在增强,民企活力不可小觑