Advertisement
smj007

Valid Palindrome III

Aug 4th, 2024
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. class Solution:
  2.  
  3.     def helper(self, s, start, end):
  4.         # base cases
  5.         if start >= end:
  6.             self.cache[(start, end)] = 0
  7.             return 0
  8.         if (start, end) in self.cache:
  9.             return self.cache[(start, end)]
  10.  
  11.         if s[start] == s[end]:
  12.             self.cache[(start, end)] = self.helper(s, start+1, end-1)
  13.         else:
  14.             remove_start = 1 + self.helper(s, start+1, end)
  15.             remove_end = 1 + self.helper(s, start, end-1)
  16.             self.cache[(start, end)] = min(remove_start, remove_end)
  17.  
  18.         return self.cache[(start, end)]
  19.  
  20.     def isValidPalindrome(self, s: str, k: int) -> bool:
  21.         self.cache = {}
  22.         return self.helper(s, 0, len(s)-1) <=k
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement