Leetcode 763. Partition Labels | | Leetcode 763. Partition Labels 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 123456789101112131415161718192021222324252627class Solution {public: vector<int> partitionLabels(string S) { unordered_map<char, int> m; vector<int> result; vector<int> indices(S.length()); for(int i = 0; i < S.length(); i++) { m[S[i]] = i; } for(int i = 0; i < S.length(); i++) { indices[i] = m[S[i]]; } int max = 0; int start = 0; for(int i = 0; i < S.length(); i++) { if(indices[i] > max) { max = indices[i]; } if(i == max) { result.push_back(max - start + 1); start = i + 1; max = 0; } } return result; }}; Version 2 1234567891011121314151617181920212223class Solution {public: vector<int> partitionLabels(string S) { unordered_map<char, int> m; vector<int> result; for(int i = 0; i < S.length(); i++) { m[S[i]] = i; } int max = 0; int start = 0; for(int i = 0; i < S.length(); i++) { if(m[S[i]] > max) { max = m[S[i]]; } if(i == max) { result.push_back(max - start + 1); start = i + 1; max = 0; } } return result; }}; Reference https://leetcode.com/problems/partition-labels/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏