Remove Duplicate Letters

Medium

Topics
StringStackGreedyMonotonic Stack

Given a string s, remove duplicate letters so that every letter appears exactly once. Among all such results, return the lexicographically smallest one.

Example 1

Input:  s = "bcabc"
Output: "abc"

Example 2

Input:  s = "cbacdcbc"
Output: "acdb"
Explanation: Keeping the first c, then a, then d, then b gives the smallest arrangement in which each letter appears once.

Constraints

  • 1 <= s.length <= 10^4
  • s consists of lowercase English letters
Run ⌘' · Submit ⌘⏎