原文链接: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
-
相关阅读:
【最详细】最新最全Java基础面试题(52道)
Spring Cloud Gateway 使用示例
C语言中整型与浮点型在内存中的存储
SAP 内向交货单报表
价格监测千万别漏掉这些内容
(二)基于企业现金流预测的投资决策-算法实现
STM32嵌入式开发需要掌握硬件、嵌入式系统、C编程语言以及相关的外设驱动等知识
Mybatis日期检索格式报错
看完这6款浏览器的对比,你还使用国产浏览器吗
Android自定义View(下)
-
原文地址:https://blog.csdn.net/qq_52726736/article/details/128051517