316 去除重複字母 leetcode

2022-06-10 18:03:08 字數 538 閱讀 7565

原題鏈結

本題是就是上一道樂扣將去除k位數字的要求換成了去重.要求同樣是字典序最小.

這道題的注意點就是:

去重(只出現一次的再大也不能去掉)

已經在棧裡的小寫字母不需要再push進入,不管它多小

因此很容易分析出此單調棧是單調遞增棧,到時候將棧內元素pop出再反轉即可

1

class

solution

14while(!stk.empty()&&s[stk.top()]>=s[i]&&counts[s[stk.top()]-'

a']>1)19

//棧內是單調遞增的序列,比top小的已出現元素不要再加入

20stk.push(i);

21 isin[s[i]-'

a']=1;22

}23while(!stk.empty())

27reverse(ans.begin(),ans.end());

28return

ans;29}

30 };

316 去除重複字母

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

316 去除重複字母

給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 分析 這道題就是,第一去重複,第二就是選擇最小的字串。去重複倒是不難,主...

316 去除重複字母

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