316 去除重複字母

2021-10-01 20:14:07 字數 634 閱讀 4374

給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小(要求不能打亂其他字元的相對位置)。

示例 1:

輸入: 「bcabc」

輸出: 「abc」

示例 2:

輸入: 「cbacdcbc」

輸出: 「acdb」

分析:

這道題就是,第一去重複,第二就是選擇最小的字串。

去重複倒是不難,主要是如何選擇最小的字串?

首先,有幾點要明確:

1.只出現過一次的字元,肯定要存在。

2.當出現的字元有多個,是否應該保留?假設是這樣的情況,當前字元出現多次,我先新增上去,當後面出現乙個字元小於它,則我可以刪了它而取後面的字元,如當前取的字串為bc(兩者都出現不止一次),後乙個字元為a,那麼就應該刪了b,再刪了c,之後再新增a,這樣就能保證是最小的情況。

**如下:

class

solution

break;}

res +

= s[i];}

}return res;}}

;

316 去除重複字母

給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 我的 超時 class solution string removedu...

316 去除重複字母

給你乙個字串 s 請你去除字串中重複的字母,使得每個字母只出現一次。需保證 返回結果的字典序最小 要求不能打亂其他字元的相對位置 注意 該題與 1081 相同 示例 1 輸入 s bcabc 輸出 abc 示例 2 輸入 s cbacdcbc 輸出 acdb 1 s.length 104 s 由小寫...

316 去除重複字母

316.去除重複字母 給你乙個字串s,請你去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 s bcabc 輸出 abc 示例 2 輸入 s cbacdcbc 輸出 acdb 1 s.length 104 s 由小寫英文本母組成...