LeetCode #316: Remove Duplicate Letters
来源:互联网 发布:深圳淘宝电商培训 编辑:程序博客网 时间:2024/05/17 06:47
Problem Statement
(Source) Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure your result is the smallest in lexicographical order among all possible results.
Example:
Given "bcabc"
Return "abc"
Given "cbacdcbc"
Return "acdb"
Analysis
Tags: [Stack, Greedy]
Solution
class Solution(object): def removeDuplicateLetters(self, s): """ :type s: str :rtype: str """ from collections import deque, Counter sta = deque() cnt = Counter(s) se = set() n = len(s) if n > 0: sta.append(s[0]) se.add(s[0]) cnt[s[0]] -= 1 for i in xrange(1, n): ch = s[i] if ch not in se: if ch > sta[-1]: sta.append(ch) se.add(ch) elif ch <= sta[-1]: while sta and sta[-1] >= ch and cnt[sta[-1]] > 0: x = sta.pop() se.remove(x) sta.append(ch) se.add(ch) cnt[ch] -= 1 return ''.join(list(sta))
Complexity analysis
- Time complexity:
- Space complexity:
0 0
- [leetcode-316]Remove Duplicate Letters
- [LeetCode 316] Remove Duplicate Letters
- LeetCode 316: Remove Duplicate Letters
- leetcode(316):Remove Duplicate Letters
- LeetCode #316: Remove Duplicate Letters
- Leetcode (316) Remove Duplicate Letters
- LeetCode(316)Remove Duplicate Letters
- leetcode Remove Duplicate Letters
- leetcode: Remove Duplicate Letters
- LeetCode Remove Duplicate Letters
- 《leetCode》:Remove Duplicate Letters
- Leetcode: Remove Duplicate Letters
- leetcode--Remove Duplicate Letters
- [Leetcode]Remove Duplicate Letters
- 【Leetcode】Remove Duplicate Letters
- 【leetCode】 Remove Duplicate Letters
- [LeetCode]Remove Duplicate Letters
- Leetcode | Remove Duplicate Letters
- Android实现ViewPager广告轮播控件在不同分辨率的屏幕下高度自适应
- ACE console窗口打印中文
- Gstreamer学习历程(一):Ubuntu 12.04安装Gstreamer开发环境并测试
- radio或者checkbox使用jquery的attr(checked)一直为undefined
- ruby基础——extend与include
- LeetCode #316: Remove Duplicate Letters
- 6-2 多态性与虚函数
- HDU5890 Eighty seven (数位DP)
- xcode8 升级后注释快捷键不能使用的解决方法
- MongoDB 复制集和分片问题
- cocoapods setup Setting up CocoaPods master repo 一直在这里卡着
- Activity的生命周期
- 消息中间件与JMS标准
- 我的眼眸,等你路过我的容颜