LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
LC 316:
給你一個字符串 s ,請你去除字符串中重復的字母,使得每個字母只出現一次。需保證 返回結果的字典序最小(要求不能打亂其他字符的相對位置)。
示例 1: 輸入:s = "bcabc" 輸出:"abc"示例 2: 輸入:s = "cbacdcbc" 輸出:"acdb"提示: 1 <= s.length <= 10^4 s 由小寫英文字母組成來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/remove-duplicate-letters
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
LC 1081:
返回字符串 text 中按字典序排列最小的子序列,該子序列包含 text 中所有不同字符一次。
示例 1: 輸入:"cdadabcc" 輸出:"adbc"示例 2: 輸入:"abcd" 輸出:"abcd"示例 3: 輸入:"ecbacba" 輸出:"eacb"示例 4: 輸入:"leetcode" 輸出:"letcod"提示: 1 <= text.length <= 1000 text 由小寫英文字母組成來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/smallest-subsequence-of-distinct-characters
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 記錄每個字符最后出現的位置
- 一旦前面的字符比當前的大,且在后面還存在該大字符,則刪除該大的字符
4 ms 7.2 MB
1081題的代碼跟上面一模一樣
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 316. 去除重复字母 / 1081. 不同字符的最小子序列(单调栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1355.
- 下一篇: LeetCode 1576. 替换所有的