要得到 s 的一个子序列:每个出现过的字母恰好一次,且字典序最小。用单调栈从左到右贪心。
给定一个仅由小写英文字母组成的字符串 s。
请删除字符串中的一些字符,使得最终字符串中的每个字母都只出现一次,并且原字符串中剩余字符的相对位置不能发生改变。
在所有满足条件的结果中,请输出字典序最小的字符串。
输入一行字符串 s,表示给定的字符串。
1≤∣s∣≤104
字符串 s 仅由小写英文字母组成。
输出一个字符串,表示删除重复字母后得到的字典序最小结果。
要求结果中的每个字母只出现一次,并且不能改变剩余字符在原字符串中的相对位置。
输入
bcabc
输出
abc
说明
字符串 s 中包含字母 a、b、c。
删除重复字母后,可以得到多个满足每个字母只出现一次的结果。
其中 abc 的字典序最小,因此输出 abc。
输入
cbacdcbc
输出
acdb
说明
字符串 s 中包含字母 a、b、c、d。
在保证每个字母只出现一次,并且不改变剩余字符相对位置的情况下,字典序最小的结果为 acdb。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册