Advertisement
Guest User

Untitled

a guest
Mar 28th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. class Solution:
  2. def characterReplacement(self, s: str, k: int) -> int:
  3. if not s:
  4. return 0
  5. if k > len(s) - 2:
  6. return len(s)
  7.  
  8. a = [0 for i in range(26)]
  9. b = [-1 for i in range(26)]
  10.  
  11. numC = [0 for i in range(26)]
  12.  
  13. best = k + 1
  14.  
  15. for i in range(len(s)):
  16. c = ord(s[i]) - ord('A')
  17. numC[c] += 1
  18.  
  19. cost = i - b[c] - 1
  20. b[c] = i
  21.  
  22. oldC = 0
  23. while j < cost:
  24. c2 = s[a[c] + j + oldC]
  25. if c2 == c:
  26. oldC += 1
  27. else
  28. j += 1
  29.  
  30. numC -= oldC
  31. a[c] += oldC + j
  32.  
  33. best = max(best, numC + k)
  34.  
  35.  
  36. return min(best, len(s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement