class Solution {public:bool validPalindrome(string s) {int i = 0;for (; i < s.size() / 2; ++i) {if (s[i] != s[s.size() - 1 - i]) {break;}}return i == s.size() / 2 || isPalindrome(s, i, s.size() - 2 - i) //i==s.size()表示指针能够走到字符串的中间//删除右边的//如果只有3个,最靠边的两个相同,必然回文,如果有四个最靠边的两个必然符合条件|| isPalindrome(s, i + 1, s.size() - 1 - i);//删除左边的}
//删除一边后,直接检验是否回文bool isPalindrome (string& s, int i, int j) {while (i < j) {if (s[i++] != s[j--]) {return false;}}return true;}
};作者:master_xue
链接:https://leetcode-cn.com/problems/RQku0D/solution/jian-zhi-offer-2-mian-shi-ti-19-shu-zhon-m59d/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

双指针:两个指针同时从左边和右边出发,如果相同同时向中间移动,如果不同要删除左边或者右边的一个指针所指向的字符,是删除左边的还是删除右边的?

答:两边都要试一次,完成删除以后要检验两边的回文。

2021-11-14剑指OfferII019.最多删除一个字符得到回文相关推荐

  1. LeetCode680删除一个字符后是否还是回文字符串

    题目: 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串.示例 1:输入: "aba" 输出: True 示例 2:输入: "abca" 输出 ...

  2. 【LeetCode】剑指 Offer 18. 删除链表的节点

    [LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...

  3. 【算法】剑指 Offer 18. 删除链表的节点

    1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...

  4. 【剑指 Offe】剑指 Offer 18. 删除链表的节点

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...

  5. Java黑皮书课后题第6章:**6.26(回文素数)回文素数是指一个数同时为素数和回文数。编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开

    6.26(回文素数)回文素数是指一个数同时为素数和回文数.编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开 题目描述与运行示例 代码 题目描述与运行示例 6.26(回文素数) ...

  6. Backspace长按不能删除,按一下只能删除一个字符

    电脑经常出现 "长按删除键只能删除一个字符,删除很多的话需要一下一下的按" 问题,网上找了一些解决方案,发现好多啊,说什么的都有,有设置vim的.有设置word文档的,本人觉得不对 ...

  7. 字符串中如何删除一个字符

    字符串中我们怎么删除一个字符 第一种办法,找到该字符,后面的字符挨个挨个往前移动.直接上代码: #include using namespace std; void deletestr_T(char ...

  8. leetcode(494/3/53/135/97/72/772/11/301/300/45/517/1643/146/42/407)面试题08.14~剑指offer62

    目录 题目1:给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度.返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住. 题目2:一个数组中只有俩个字符'G'和'B',可以让 ...

  9. 【0ms优化】剑指 Offer 18. 删除链表的节点

    立志用最少的代码做最高效的表达 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: head = [4,5, ...

最新文章

  1. ios11修改微信步数_一个人有多孤独,看他的微信步数就知道了
  2. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别
  3. Windows 08 R2_NLB负载均衡(图文详解)
  4. Windows Server 2016 简介和安装
  5. OS_CORE.C(3)
  6. python-数据结构-栈
  7. python初学火车座位判断_Python学习第三课 判断(if)语句
  8. 参数注入:使用java配置参数的方法,springboot的方法
  9. Lable 换行动态计算高度(2种)
  10. 支付宝信用分数678高么?
  11. OpenShift 4 - 使用Debezium实现MySQL的CDC变化数据捕获
  12. mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...
  13. LeetCode(476)——数字的补数(JavaScript)
  14. 找不到FLANNConfig.cmake文件
  15. 手机号 ,邮箱,固定电话js验证,身份证号(正则表达式)
  16. JS API Sample_Query Attachments 查询附件
  17. java坦克大战墙_java实现坦克大战(功能丰富)
  18. Java面向对象练习题之计算圆的面积和周长
  19. java计算机毕业设计学校意见征集系统源码+系统+mysql数据库+lw文档
  20. 使用Python 封装一个简单的Mysql工具类

热门文章

  1. 自己撸一个阅读类休闲app
  2. 自考计算机应用基础多少分及格,自考多少分才算通过?
  3. 利用FFmpeg将立体声转为单声道wav
  4. 解决“设备和打印机”无法打开这个问题分享
  5. Reinforcement Leaning资料
  6. bootstrap Datatable自定义表格工具栏
  7. net.sf.json-lib
  8. 这样查找热点新闻素材,3招帮你提升公众号阅读量
  9. mov格式怎么转换为mp4
  10. java撤销删除_[Java教程]利用npm安装/删除/发布/更新/撤销发布包