680. 验证回文字符串 Ⅱ

Posted hequnwang10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了680. 验证回文字符串 Ⅱ相关的知识,希望对你有一定的参考价值。

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

示例 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) {
        for(int left = 0,right = s.length()-1;left<right;left++,right--){
            if(s.charAt(left)!=s.charAt(right)){
                 return isPalindrome(s,left+1,right) || isPalindrome(s,left,right-1);
            }
           
        }
       return true;
    }
    private boolean isPalindrome(String s,int left,int right){
        while(left<right){
            if(s.charAt(left++)!=s.charAt(right--)){
                return false;
            }
        }
        return true;
    }
}

以上是关于680. 验证回文字符串 Ⅱ的主要内容,如果未能解决你的问题,请参考以下文章

680. 验证回文字符串 Ⅱ

680. 验证回文字符串 Ⅱ

LeetCode 125. 验证回文串 && 680. 验证回文字符串 Ⅱ

字符串680. 验证回文字符串 Ⅱ

LeetCode 680 验证回文字符串 Ⅱ 做题感悟

LeetCode 680. 验证回文字符串 Ⅱ