原題鏈結
本題是就是上一道樂扣將去除k位數字的要求換成了去重.要求同樣是字典序最小.
這道題的注意點就是:
去重(只出現一次的再大也不能去掉)
已經在棧裡的小寫字母不需要再push進入,不管它多小
因此很容易分析出此單調棧是單調遞增棧,到時候將棧內元素pop出再反轉即可
1class
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 由小寫...