classSolution{public:
vector<int>partitionLabels(string s){
vector<int> res;
unordered_map<char,int> map;for(int i =0; i < s.size(); i++){
map[s[i]]= i;}int left =-1, right =0;int index =0;for(int i =0; i < s.size(); i++){char c = s[i];
right = map[c];
index =max(right, index);if(index == i){
res.push_back(index - left);
left = index;}}return res;}};
代码(10.5 二刷自解)
classSolution{public:
vector<int>partitionLabels(string s){
unordered_map<char,int> mp;for(int i =0; i < s.size(); i++)
mp[s[i]]= i;
vector<int> res;int pre =0;int last =0;for(int i =0; i < s.size(); i++){
pre =max(pre, mp[s[i]]);if(i >= pre){
res.emplace_back(i-last+1);
last = i+1;}}return res;}};