1216. Valid Palindrome III
Input: s = "abcdeca", k = 2
Output: true
Explanation: Remove 'b' and 'e' characters.Input: s = "abbababa", k = 1
Output: trueLast updated
Input: s = "abcdeca", k = 2
Output: true
Explanation: Remove 'b' and 'e' characters.Input: s = "abbababa", k = 1
Output: trueLast updated
from functools import lru_cache
class Solution:
def isValidPalindrome(self, s: str, k: int) -> bool:
@lru_cache(maxsize=None)
def dfs(l,r,k):
if l >=r:
return True
elif s[l] == s[r]:
return dfs(l+1,r-1,k)
elif k > 0:
return dfs(l+1,r,k-1) or dfs(l,r-1,k-1)
else:
return False
return dfs(0,len(s)-1,k)