0680. Valid Palindrome II
Description
**Input:** s = "aba"
**Output:** true**Input:** s = "abca"
**Output:** true
**Explanation:** You could delete the character 'c'.**Input:** s = "abc"
**Output:** falseac
Last updated
**Input:** s = "aba"
**Output:** true**Input:** s = "abca"
**Output:** true
**Explanation:** You could delete the character 'c'.**Input:** s = "abc"
**Output:** falseLast updated
class Solution {
public boolean validPalindrome(String s) {
// edge case
if (s == null || s.length() == 0) return false;
int l = 0, r = s.length()-1;
while (l < r) {
if (s.charAt(l) != s.charAt(r)) {
return validate(s, l, r-1) || validate(s, l+1, r);
}
l++;
r--;
}
return true;
}
private boolean validate(String s, int l, int r) {
// exit
if (l > r) return false;
if (l == r) return true;
while (l < r) {
if (s.charAt(l) != s.charAt(r)) return false;
l++;
r--;
}
return true;
}
}