class Solution {
public:
vector
<int> partitionLabels(string S
) {
vector
<int> ans
;
int last
[26];
fill(last
,last
+26,-1);
for(int i
=0;i
<S
.size();i
++)
last
[S
[i
]-'a']=i
;
int left
=0,ll
=0,right
;
while(left
<S
.size())
{
right
=last
[S
[left
]-'a'];
while(left
<right
)
{
left
++;
if(last
[S
[left
]-'a']>right
) right
=last
[S
[left
]-'a'];
}
ans
.push_back(right
-ll
+1);
left
=ll
=right
+1;
}
return ans
;
}
};
转载请注明原文地址: https://lol.8miu.com/read-27985.html