当前位置: 首页 > 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;}
};
http://www.dtcms.com/a/155024.html

相关文章:

  • 基于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年深度学习模型发展全景透视(基于前沿技术突破与开源生态演进的交叉分析)
  • 【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明
  • Linux系统下的常用网络命令
  • 如何在SOLIDWORKS中高效管理文件属性?
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • macOS 更新后找不到钥匙串访问工具的解决方案
  • Flutter Dart中的函数参数 默函数的定义 可选参数 箭头函数 匿名函认参数 命名参类数 闭包等
  • 如何通过python连接hive,并对里面的表进行增删改查操作
  • 信奥赛之c++基础(计算机存储+数据类型转换)
  • kafka和Spark-Streaming2
  • Linux常用中间件命令大全