DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

Valid Palindrome II

Given a string s, return true if the s can be palindrome after deleting at most one character from it.

Example 1:

Input: s = "aba"
Output: true

Example 2:

Input: s = "abca"
Output: true
Explanation: You could delete the character 'c'.

Example 3:

Input: s = "abc"
Output: false

Constraints:

  • 1 <= s.length <= 105
  • s consists of lowercase English letters.

SOLUTION:

class Solution:
    def validPalindrome(self, s: str) -> bool:
        n = len(s)
        i = 0
        j = n - 1
        while s[i] == s[j] and i < j:
            i += 1
            j -= 1
        if s[i] != s[j]:
            option1 = s[:i] + s[i + 1:]
            option2 = s[:j] + s[j + 1:]
            if option1 == option1[::-1]:
                return True
            if option2 == option2[::-1]:
                return True
            return False
        return True
Enter fullscreen mode Exit fullscreen mode

Top comments (0)