Valid Palindrome II
EasyTwo PointersStringGreedy
Solution
export function validPalindrome(s: string, canRemove = true): boolean {
let [start, end] = [0, s.length - 1];
while (start < end) {
if (s[start] !== s[end]) {
return (
canRemove &&
(validPalindrome(s.substring(start, end), false) ||
validPalindrome(s.substring(start + 1, end + 1), false))
);
}
start += 1;
end -= 1;
}
return true;
}