개발 로그/알고리즘
763. Partition Labels.cpp
CyberSoak
2021. 10. 3. 16:16
class Solution {
public:
vector<int> partitionLabels(string s) {
vector<int>res;
vector<int>last(26,0);
for(int i =0; i<s.size();i++){
last[s[i]-'a'] = i;
}
int maxidx =-1; int start = 0;
for(int i =0; i<s.size();i++){
maxidx = max(maxidx,last[s[i]-'a']);
if(maxidx ==i){
res.push_back(maxidx-start+1);
start = i +1;
}
}
return res;
}
};