【Leetcode每日一題】316. 去除重複字母(棧,貪心)
Leetcode 每日一題
題目連結: 316. 去除重複字母
難度: 中等
解題思路: 每次當前的字元是否是小於棧頂元素的,若不小於將其pop。還需要記錄某個字元是否已經在棧中出現,若已經出現過則不用在進行比較。
題解:
class Solution:
def removeDuplicateLetters(self, s: str) -> str:
count = collections.Counter(s)
visit = set()
stack = list()
for ch in s:
if ch not in visit:
while len(stack) > 0 and ch < stack[-1]:
if count[stack[-1]] > 0:
visit.remove(stack[-1])
stack.pop(-1)
else:
break
visit.add(ch)
stack.append(ch)
count[ch] -= 1
return "".join(stack)
相關文章
- [Leetcode]316.去除重複字母LeetCode
- LeetCode 316. 去除重複字母 java題解LeetCodeJava
- leetcode 316.去除重複字母 JavaLeetCodeJava
- 力扣-316. 去除重複字母力扣
- 去除重複字母(不同字元的最小序列)問題字元
- LeetCode每日一題:重複 N 次的元素(No.961)LeetCode每日一題
- LeetCode解題記錄(貪心演算法)(一)LeetCode演算法
- LeetCode每日一題: 僅僅反轉字母(No.917)LeetCode每日一題
- 1413D. Shurikens(貪心,棧)3D
- LeetCode每日一題: 反轉字串中的母音字母(No.345)LeetCode每日一題字串
- LeetCode每日一題: 轉換成小寫字母(No.709)LeetCode每日一題
- leetcode【每日一題】242. 有效的字母異位詞 javaLeetCode每日一題Java
- LeetCode每日一題:刪除排序陣列中的重複項(No.26)LeetCode每日一題排序陣列
- js去除重複字串JS字串
- LeetCode:動態規劃+貪心題目整理LeetCode動態規劃
- leetcode1546題解【字首和+貪心】LeetCode
- Leetcode 貪心:差值調整LeetCode
- 力扣 leetcode 435. 無重疊區間 貪心力扣LeetCode
- 反悔貪心雜題
- LeetCode解題記錄(貪心演算法)(二)LeetCode演算法
- leetcode1552題解【二分+貪心】LeetCode
- List中去除重複物件物件
- 【每日一題】無重複字元的最長子串每日一題字元
- leetcode每日一題LeetCode每日一題
- 貪心 做題筆記筆記
- 「貪心」做題記錄
- leetcode刷題.763. 劃分字母區間.每日打卡LeetCode
- mongodb如何去除重複資料MongoDB
- mongodb去除重複的資料MongoDB
- 測試去除重複資料
- [每日一題] 第十九題:陣列中重複的數字每日一題陣列
- Leetcode每日一題(1)LeetCode每日一題
- 貪心
- [LeetCode] Remove Duplicates from Sorted Array 有序陣列中去除重複項LeetCodeREM陣列
- 貪心(入門簡單題)
- 每日一題 [26] 刪除排序陣列中的重複項每日一題排序陣列
- 24/03/20 貪心(一)
- python中列表如何去除重複Python