給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小(要求不能打亂其他字元的相對位置)。
示例 1:
輸入: "bcabc"
輸出: "abc"
示例 2:
輸入: "cbacdcbc"
輸出: "acdb"
思路分析:使用棧的輔助。
while
如果出現比之前寫過的字元還小,且這個字元後面出現過,則應該將上次寫入的字元倒出,放入後面寫入。
寫入當前字元到結果。
class solution , visited[256] = ;
string res = "0";
//第一次掃瞄字串,標記各個字元出現的次數
for (auto a : s)
//第二次掃瞄字串,寫入結果
for (auto ch : s)
res += ch;//寫入
visited[ch] = 1;//標記已寫入
}return res.substr(1);//去掉開頭的字元0}};
LeetCode 去除重複字母
原題鏈結 316.去除重複字母 給你乙個字串 s 請你去除字串中重複的字母,使得每個字母只出現一次。需保證 返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 s bcabc 輸出 abc 示例 2 輸入 s cbacdcbc 輸出 acdb 提示 可以參考 一看就會,就差手把手教...
316 去除重複字母 leetcode
原題鏈結 本題是就是上一道樂扣將去除k位數字的要求換成了去重.要求同樣是字典序最小.這道題的注意點就是 去重 只出現一次的再大也不能去掉 已經在棧裡的小寫字母不需要再push進入,不管它多小 因此很容易分析出此單調棧是單調遞增棧,到時候將棧內元素pop出再反轉即可 1 class solution ...
去除重複字母 LeetCode361
問題描述 給你乙個僅包含小寫字母的字串,請你去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 輸入說明 輸入乙個僅包含小寫字母的字串 輸出說明 輸出結果...