diff --git a/medium/lexicographically_minimum_string_after_removing_stars.py b/medium/lexicographically_minimum_string_after_removing_stars.py new file mode 100644 index 0000000..7dd490f --- /dev/null +++ b/medium/lexicographically_minimum_string_after_removing_stars.py @@ -0,0 +1,17 @@ +# https://leetcode.com/problems/lexicographically-minimum-string-after-removing-stars + +import heapq + +class Solution: + def clearStars(self, s: str) -> str: + result = list(s) + h = [] + for i in range(len(s)): + if s[i] == '*': + (_, _, origin) = heapq.heappop(h) + result[origin] = '' + result[i] = '' + else: + heapq.heappush(h, (s[i], -i, i)) + return ''.join(result) +