classSolution(object):defmoveZeroes(self, nums):
j=0for i in range(len(nums)):
if nums[i]!=0:
nums[j]=nums[i]
j=j+1for i in range(j,len(nums)):
nums[i]=0
classSolution(object):defpartitionLabels(self, S):"""
:type S: str
:rtype: List[int]
"""
stack = []
maps = dict()
for i,s in enumerate(S):
if s notin maps:
maps[s] = i
stack.append([i,i])
else:
idx = maps[s]
while(stack):
[start,end] = stack.pop()
if idx>=start:
break
stack.append([start,i])
ret = []
for i in stack:
ret.append(i[1]-i[0]+1)
return ret
classSolution(object):deffindLongestWord(self, s, d):"""
:type s: str
:type d: List[str]
:rtype: str
"""
maxlen = [len(token) for token in d]
pos = [0for token in d]
ret = []
for token in s:
for i in range(len(pos)):
if pos[i]<maxlen[i] and d[i][pos[i]]==token:
pos[i]+=1if pos[i] == maxlen[i]:
ret.append(d[i])
if ret == []: return''
maxl = len(max(ret, key = len))
return min(w for w in ret if len(w) == maxl)