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)
相关推荐
shixian103041112 小时前
conda安装Django+pg运行环境
python·django·conda
jiaoxingk12 小时前
Django 接口文档生成:Swagger 与 ReDoc 全面说明
python·django
CodeCraft Studio13 小时前
国产化Excel开发组件Spire.XLS教程:Python将列表导出为CSV文件(含一维/二维/字典列表)
开发语言·python·excel·csv·spire.xls·列表导出为csv
Blossom.11813 小时前
大模型知识蒸馏实战:从Qwen-72B到Qwen-7B的压缩艺术
大数据·人工智能·python·深度学习·算法·机器学习·pygame
刘逸潇200513 小时前
Socket:TCP/UDP通信详解
python·websocket·udp·tcp
The_Second_Coming13 小时前
Python 学习笔记:基础篇
运维·笔记·python·学习
诗句藏于尽头13 小时前
python实战学习记录
python·学习
AI松子66614 小时前
PyTorch-混合精度训练(amp)
人工智能·pytorch·python
MDLZH14 小时前
Pytorch性能调优简单总结
人工智能·pytorch·python
程序员爱钓鱼15 小时前
Python 编程实战 · 实用工具与库 — Flask 路由与模板
前端·后端·python