0316:去除重复字母(★)
目录
题目
给你一个字符串 s
,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。
示例 1:
输入:s = "bcabc"
输出:
"abc"
示例 2:
输入:s = "cbacdcbc"
输出:"acdb"
提示:
1 <= s.length <= 104
s
由小写英文字母组成
注意:该题与 1081 https://leetcode-cn.com/problems/smallest-subsequence-of-distinct-characters 相同
相似问题:
分析
- 要字典序最小,遍历时考虑贪心
- 假如当前字符已采用过,跳过它
- 否则,假如当前字符比前一字符小,考虑删掉前一字符
- 若前一字符在后面还有,只能保留
- 否则,删掉前一字符,继续比较当前字符和前一字符
解答
|
|
32 ms