1
class Solution:
2
def removeDuplicateLetters(self, s: str) -> str:
3

4
last_occ = {}
5
stack = []
6
visited = set()
7

8
for i in range(len(s)):
9
last_occ[s[i]] = i
10

11
for i in range(len(s)):
12

13
if s[i] not in visited:
14
while stack and stack[-1] > s[i] and last_occ[stack[-1]] > i:
15
visited.remove(stack.pop())
16

17
stack.append(s[i])
18
visited.add(s[i])
19

20
return "".join(stack)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0