Start with two pointers at both ends of the string, moving inward. As long as characters match, keep going.
When you hit a mismatch at positions left and right, you have one deletion. Try both options: skip the left character and check if s[left+1..right] is a palindrome, or skip the right character and check if s[left..right-1] is a palindrome. If either substring is a palindrome, the answer is true.
If both options fail, no single deletion can save it.