LeetCode 去掉重複字母

2021-09-12 07:31:52 字數 719 閱讀 8008

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

示例 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 輸入說明 輸入乙個僅包含小寫字母的字串 輸出說明 輸出結果...