Skip to content

Lexicographically Smallest

Table of Contents

402. Remove K Digits

1673. Find the Most Competitive Subsequence

316. Remove Duplicate Letters

316. Remove Duplicate Letters - Python Solution
# Monotonic Stack
def removeDuplicateLetters(s: str) -> str:
    stack = []
    seen = set()
    last = {c: i for i, c in enumerate(s)}

    for i, c in enumerate(s):
        if c not in seen:
            while stack and c < stack[-1] and i < last[stack[-1]]:
                seen.discard(stack.pop())
            seen.add(c)
            stack.append(c)

    return "".join(stack)


s = "cbacdcbc"
print(removeDuplicateLetters(s))  # acdb

1081. Smallest Subsequence of Distinct Characters

321. Create Maximum Number

2030. Smallest K-Length Subsequence With Occurrences of a Letter

Comments