1
class Solution:
2
def smallestSubsequence(self, s: str, k: int, letter: str, repetition: int) -> str:
3
s = list(s)
4
stack = []
5
countAll = s.count(letter)
6
count = 0
7
for ind, i in enumerate(s):
8
while stack and stack[-1] > i:
9
if stack[-1] == letter and i != letter:
10
if countAll + count - 1 < repetition:
11
break
12
if len(stack) + len(s) - ind - 1 < k:
13
break
14
if stack[-1] == letter:
15
count -= 1
16
stack.pop()
17
stack.append(i)
18
if i == letter:
19
count += 1
20
countAll -= 1
21
temp = 0
22
while len(stack) + temp > k:
23
if stack[-1] == letter and count <= repetition:
24
temp += 1
25
if stack[-1] == letter:
26
count -= 1
27
stack.pop()
28
return "".join(stack) + temp * letter

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0