Minimum Deletions to Make String Balanced LeetCode solution in Python

1
class Solution:
2
def minimumDeletions(self, s: str) -> int:
3
preSum = [0] * (len(s) + 1)
4
sufSum = [0] * (len(s) + 1)
5

6
for i in range(len(s)):
7
if s[i] == "a":
8
preSum[i] += 1 + preSum[i - 1]
9

10
else:
11
preSum[i] = preSum[i - 1]
12

13
if s[len(s) - i - 1] == "b":
14
sufSum[len(s) - i - 1] += 1 + sufSum[len(s) - i]
15

16
else:
17
sufSum[len(s) - i - 1] += sufSum[len(s) - i]
18

19
maxStringLength = 0
20
for i in range(len(s)):
21
if preSum[i] + sufSum[i] > maxStringLength:
22
maxStringLength = preSum[i] + sufSum[i]
23

24
return len(s) - maxStringLength

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0