316-Remove-Duplicate-Letters

Sat 17 May 2025

https://leetcode.com/problems/remove-duplicate-letters

import pyutil as pyu
pyu.get_local_pyinfo()
print(pyu.ps2("python-dotenv"))
from typing import List
class Solution:
  def removeDuplicateLetters(self, s: str) -> str:
    ans = []
    count = Counter(s)
    used = [False] * 26

    for c in s:
      count[c] -= 1
      if used[ord(c) - ord('a')]:
        continue
      while ans and ans[-1] > c and count[ans[-1]] > 0:
        used[ord(ans[-1]) - ord('a')] = False
        ans.pop()
      ans.append(c)
      used[ord(ans[-1]) - ord('a')] = True

    return ''.join(ans)
new Solution().removeDuplicateLetters()

Score: 5

Category: leetcode