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)
相关推荐
七夜zippoe1 分钟前
缓存策略:从本地到分布式架构设计与Python实战
分布式·python·缓存·lfu·lru
曲幽2 分钟前
重构FastAPI生产部署:用异步网关与无服务器计算应对高并发
python·serverless·fastapi·web·async·httpx·await·asyncio
郝学胜-神的一滴6 分钟前
《机器学习》经典教材全景解读:周志华教授匠心之作的技术深探
数据结构·人工智能·python·程序人生·机器学习·sklearn
知乎的哥廷根数学学派6 分钟前
基于物理约束与多源知识融合的浅基础极限承载力智能预测与工程决策优化(以模拟信号为例,Pytorch)
人工智能·pytorch·python·深度学习·神经网络·机器学习
费弗里10 分钟前
新组件库fi发布,轻松实现新一代声明式信息图可视化
python·数据可视化·dash
书中藏着宇宙17 分钟前
CornerNet的续篇(数据处理与训练)
开发语言·python
万粉变现经纪人19 分钟前
如何解决 pip install mysqlclient 报错 ‘mysql_config’ not found 问题
数据库·python·mysql·pycharm·bug·pandas·pip
海棠AI实验室23 分钟前
第五章 配置管理:用 YAML/ENV 让项目可迁移
python·yaml
love_summer23 分钟前
流程控制进阶:从闰年判断到猜数游戏的逻辑复盘与代码实现
python
JAVA+C语言24 分钟前
Java ThreadLocal 的原理
java·开发语言·python