Python | Leetcode Python题解之第316题去除重复字母

题目:

题解:

python 复制代码
class Solution:
    def removeDuplicateLetters(self, s: str) -> str:
        vis = defaultdict(int)
        cnt = defaultdict(int)
        for ch in s: cnt[ch] += 1
        queue = []
        for ch in s:
            if vis[ch] == 0:
                while queue and queue[-1] > ch and cnt[queue[-1]]:
                    vis[queue.pop()] = 0
                if not queue or queue != ch: queue.append(ch)
                vis[ch] = 1
            cnt[ch] -= 1
        return "".join(queue)
相关推荐
该用户已不存在1 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
站大爷IP3 小时前
Java调用Python的5种实用方案:从简单到进阶的全场景解析
python
用户8356290780519 小时前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
Fanxt_Ja9 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
c8i9 小时前
python中类的基本结构、特殊属性于MRO理解
python
liwulin05069 小时前
【ESP32-CAM】HELLO WORLD
python
Doris_202310 小时前
Python条件判断语句 if、elif 、else
前端·后端·python
Doris_202310 小时前
Python 模式匹配match case
前端·后端·python
这里有鱼汤10 小时前
Python量化实盘踩坑指南:分钟K线没处理好,小心直接亏钱!
后端·python·程序员
元亓亓亓11 小时前
LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
算法·leetcode·职场和发展