Krononberg

763. Partition Labels.cpp 본문

개발 로그/알고리즘

763. Partition Labels.cpp

k._. 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;
    }
};