May 12, 2019

680. Valid Palindrome II

680. Valid Palindrome II

Two pointers.

class Solution {
    public boolean validPalindrome(String s) {
        // Write your code here
        int i = 0;
        int j = s.length() - 1;
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) {
                return validPalindrome(s, i + 1, j) || validPalindrome(s, i, j - 1);
            } else {
                i++;
                j--;
            }
        }
        return true;
    }
    
    private boolean validPalindrome(String s, int i, int j) {
        if (i >= j) {
            return true;
        }
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            } else {
                i++;
                j--;
            }
        }
        return true;
    } 
}
comments powered by Disqus