当前位置: 首页 > news >正文

LeetCode 字典序最小子序列题解

LeetCode 字典序最小子序列题解

题目描述

给定一个字符串 s,移除重复字符,使得每个字符只出现一次,并且返回字典序最小的结果。

示例

输入:s = "bcabc"
输出:"abc"

解题思路

方法:贪心

思路

  • 统计每个字符出现的次数。
  • 遍历字符串,使用栈来维护结果。
  • 如果当前字符比栈顶字符小,并且栈顶字符在后面还会出现,则弹出栈顶字符。
  • 将当前字符加入结果。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

代码实现

def smallest_subsequence(s): count = {} in_stack = set() stack = [] for char in s: count[char] = count.get(char, 0) + 1 for char in s: count[char] -= 1 if char in in_stack: continue while stack and char < stack[-1] and count[stack[-1]] > 0: removed = stack.pop() in_stack.remove(removed) stack.append(char) in_stack.add(char) return ''.join(stack) # 测试 def test_smallest_subsequence(): s = "bcabc" print(smallest_subsequence(s)) # 输出:"abc" if __name__ == "__main__": test_smallest_subsequence()

总结

字典序最小子序列是贪心算法的典型应用,通过栈来维护结果,确保字典序最小。

http://www.jsqmd.com/news/832983/

相关文章:

  • iOS越狱终极指南:解锁iPhone隐藏功能,实现iOS 17-26完全自定义
  • Overture开源AI应用框架:全栈开发与生产部署实战指南
  • 企业级语音流水线崩盘复盘(日均50万请求):ElevenLabs Rate Limit绕行策略、异步批处理架构与熔断兜底方案
  • Rust高性能压缩工具ax:多算法、并行化与场景化配置指南
  • 玩具相机滤镜失效真相,深度解析--style raw、--hd与--no参数在MJ 6.1中的底层冲突机制及绕过方案
  • TranslucentTB启动失败终极解决方案:完整修复与优化指南
  • AI赋能广告拦截:为uBlock Origin注入智能黑名单的实践指南
  • AI增强版Grep:用自然语言搜索代码的革命性工具
  • 基于Next.js与Ollama构建现代化本地AI对话Web界面
  • R3nzSkin国服换肤终极指南:免费解锁全英雄皮肤
  • 企业征信数据整合解决方案:天眼查与企查查双源爬虫框架深度解析
  • 2026年降AI工具退款保障对比:主流五款工具售后退款政策与保障承诺完整分析
  • ClawCode方法论:构建高效个人知识库的抓取与编码实践
  • ElevenLabs匈牙利语TTS落地实录:从零配置到生产级部署的7大关键步骤
  • 【仅限前200名】Midjourney铂金印相专属Prompt库泄露:含17组经暗房验证的--v 6.2参数矩阵与胶片光谱校准模板
  • 高性能压缩工具ax:现代数据压缩的原理、实现与调优
  • MCP服务器生产部署实战:从Docker到Kubernetes的完整指南
  • AI率降不下来怎么办深度解读:2026年降AI工具处理后仍超标原因与免费应对完整方案
  • 【小沐学C++】MFC桌面应用现代化:三大Web嵌入方案实战对比(WebBrowser、WebView2、CEF3)
  • FanControl终极指南:Windows平台风扇智能控制解决方案
  • 基于微软开源方案构建企业级智能知识库:RAG架构与生产实践
  • 开发者提示词工程实战:从基础原理到高效应用
  • 基于大语言模型的ChatIE:零样本信息抽取新范式与实践指南
  • 从零构建演讲平台后端:架构设计、实时交互与性能优化实战
  • AI技能工程化实践:基于adkit/skills构建广告营销智能应用
  • 2025-2026年国内通勤防晒霜品牌推荐:十大通勤短途避免晒黑的产品口碑好的评测注意事项 - 品牌推荐
  • ARM系统控制寄存器详解与编程实践
  • 开源信任图谱TrustGraph:构建软件供应链安全的数据驱动防线
  • 自托管智能知识库EchoVault:基于向量检索的数字资产管理方案
  • 命令行上下文管理工具:提升开发效率的状态快照与切换方案