leetcode day30 去除重复字母

day30笔记

    • 1.题目描述
    • 2.代码构思(debug)

1.题目描述

leetcode day30 去除重复字母_第1张图片

2.代码构思(debug)

class Solution:
    def removeDuplicateLetters(self, s: str) -> str:
        stack = []
        seen = set()
        remain_counter = collections.Counter(s)

        for c in s:
            if c not in seen:
                while stack and c < stack[-1] and  remain_counter[stack[-1]] > 0:
                    seen.discard(stack.pop())
                seen.add(c)
                stack.append(c)
            remain_counter[c] -= 1
            
        return ''.join(stack)

你可能感兴趣的:(leetcode,算法,职场和发展)