【力扣】763:劃分字母區間 | 哈希表

題目描述

字符串 S 由小寫字母組成。我們要把這個字符串劃分爲儘可能多的片段,同一個字母只會出現在其中的一個片段。返回一個表示每個字符串片段的長度的列表。

算法思路

class Solution(object):
    def partitionLabels(self, S):
        d={}
        for i in S:
            d[i]=d.get(i,0)+1
        res=[]
        t={}
        flag=0
        for idx,i in enumerate(S):
            if i not in t:
                t[i]=d[i]-1
            else:
                t[i]-=1
            if t[i]==0:
                del t[i]
            if t=={}:
                res.append(idx+1-flag)
                flag=idx+1
        return res

執行用時 :24 ms, 在所有 Python 提交中擊敗了88.78%的用戶
內存消耗 :12.7 MB, 在所有 Python 提交中擊敗了100.00%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章