題目描述
字符串 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%的用戶