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