给你⼀个仅包含⼩写字⺟的字符串,请你去除字符串中重复的字⺟,使得每个字⺟只出现⼀次。需保证返回结果的字典序最⼩,要求不能打乱其他字符的相对位置
示例:
输⼊:”bcabc”
输出:”abc”
输⼊:”cbacdcbc”
输出:”acdb”
要求:
开发语言不限,注意:如果是高级语言,针对比较大小,仅允许数字或字符的比较,不允许直接使用字符串比较
例如:
s1 = “xxx”,s2=“xxx”;
if(s1 < s2) {
…
}
else {
…
}
以上示例代码不符合要求
class Solution2 {func derepeatString(_ s: String) -> String {var newStr = s;var stack_c = [Character]()//cbgafhbaccccbafor c in s {//去掉当前字符的strnewStr.removeFirst();if stack_c.count == 0 {stack_c.append(c)continue;}if !stack_c.contains(c) {for c2 in stack_c {if stack_c.last! > c && newStr.contains(stack_c.last!){//栈顶的字符大于当前字符时,如果后面还会出现,则删除栈顶字符,当前字符入栈stack_c.removeLast()if stack_c.count == 0 {stack_c.append(c)break}}else{stack_c.append(c)break}}}}return String(stack_c)}}
