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)
相关推荐
qq_37290693几秒前
MySQL数据库提示表损坏怎么修复_使用REPAIR TABLE修复方案
jvm·数据库·python
Absurd587几秒前
golang如何实现错误预算Error Budget计算_golang错误预算Error Budget计算实现实战
jvm·数据库·python
2301_764150563 分钟前
HTML5中结合IDBKeyRange限制游标扫描的数据范围
jvm·数据库·python
Polar__Star5 分钟前
mysql如何快速判断两个数据库结构差异_使用mysqldiff工具.txt
jvm·数据库·python
YJlio7 分钟前
2026年4月19日60秒读懂世界:从学位扩容到人形机器人夺冠,今天最值得关注的6个信号
python·安全·ios·机器人·word·iphone·7-zip
weixin_424999367 分钟前
Golang怎么写基准测试benchmark_Golang基准测试教程【完整】
jvm·数据库·python
2401_835956819 分钟前
PHP函数怎样读取CPU频率实时数据_PHP监控处理器主频变化【操作】
jvm·数据库·python
进击的荆棘10 分钟前
递归、搜索与回溯——二叉树中的深搜
数据结构·c++·算法·leetcode·深度优先·dfs
Greyson111 分钟前
JavaScript中类属性与原型属性的覆盖规则详解
jvm·数据库·python
人道领域13 分钟前
【LeetCode刷题日记】:151翻转字符串的单词(两种解法)
java·开发语言·算法·leetcode·面试