给你一个字符串 s
,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。
示例 1:
输入:s = "bcabc" 输出:"abc"
示例 2:
输入:s = "cbacdcbc" 输出:"acdb"
提示:
-
1 <= s.length <= 104
-
s
由小写英文字母组成
先遍历字符串,统计每个字符的出现次数。然后依次添加,遇到当前字符小于上次字符时,在上次字符在剩余字符串中还有时,则将上述字符“弹出”。循环弹出,直到循环结束。添加当前字符,记录添加状态。
注意,在遍历字符时,向前走一步,则当前字符的次数就要减一。
- 一刷
-
link:{sourcedir}/_0316_RemoveDuplicateLetters.java[role=include]
- 二刷
-
link:{sourcedir}/_0316_RemoveDuplicateLetters_2.java[role=include]