首页 > 其他分享 >【双指针】LeetCode 680. 验证回文串 II

【双指针】LeetCode 680. 验证回文串 II

时间:2023-01-27 19:22:54浏览次数:61  
标签:right return charAt int 680 II 回文 LeetCode left

题目链接

680. 验证回文串 II

思路

题目允许删除一个字符,那么当我们判断到一对字符不相等时,可以分别判断区间 \([left + 1, right]\) 和区间 \([left, right - 1]\) 是否能构成回文串,只要有一个能构成回文串,则合法。

代码

class Solution {
    public boolean validPalindrome(String s) {
        int left = 0;
        int right = s.length() - 1;
        boolean chance = true;

        while(left < right){
            if(s.charAt(left) != s.charAt(right)){
                return validSubPalindrome(s, left + 1, right) || validSubPalindrome(s, left, right - 1);
            }
            
            left++;
            right--;
        }

        return true;
    }

    public boolean validSubPalindrome(String s, int left, int right){
        while(left < right){
            if(s.charAt(left) != s.charAt(right)){
                return false;
            }

            left++;
            right--;
        }

        return true;
    }
}

标签:right,return,charAt,int,680,II,回文,LeetCode,left
From: https://www.cnblogs.com/shixuanliu/p/17069199.html

相关文章