原文链接:680. 验证回文串 II - 力扣(LeetCode)
给你一个字符串 s,最多 可以从中删除一个字符。
请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false 。
示例 1:
输入:s = "aba"
输出:true
示例 2:
输入:s = "abca"
输出:true
解释:你可以删除字符 'c' 。
示例 3:
输入:s = "abc"
输出:false
提示:
1 <= s.length <= 105
s 由小写英文字母组成
解题思路
利用双指针,前后同时比较是否相同
遇到不相同的,向后或向前跳一个字符继续判断
- class Solution {
- public boolean validPalindrome(String s) {
- int left=0,right=s.length()-1;
- while(left
- if(s.charAt(left)!=s.charAt(right)){
- return isTrue(s,left+1,right)||isTrue(s,left,right-1);
- }
- left++;
- right--;
- }
- return true;
- }
- public boolean isTrue(String str,int left,int right){
- while(left
- if(str.charAt(left)!=str.charAt(right)){
- return false;
- }
- left++;
- right--;
- }
- return true;
- }
- }
时间:6ms 空间:42.3MB
-
相关阅读:
想要精通算法和SQL的成长之路 - K次取反后最大化的数组和
Random与random的区别
Mirror 镜像站点的使用
弘辽科技:网店如何补流量?需要有什么准备?
python多线程返回值问题重写Thread类的run方法
H264基础知识入门
为什么计算机对浮点型数字计算存在误差
根据年月将数组拆分为以年月为key的二维数组
robotframework+selenium+ride测试环境搭建和如何把环境迁移到不能连接互联网的环境
舆情监控究竟是什么?怎么运作的?
-
原文地址:https://blog.csdn.net/qq_52726736/article/details/128051517