LeetCode#830 Positions of Large Group

1、仍然考虑建索引map,存储起始位置。当然,仅3个以上才存,这在遍历时可以做到。最后只需要遍历map即可。

class Solution {
public:
    vector<vector<int>> largeGroupPositions(string S) {
        int n = S.size();
        if(n < 3)
            return { };
        map<char, vector<int>> eleMap;
        vector<vector<int>> result;
        int outerPtr = 0;
        while(outerPtr < n){
            int innerPtr = outerPtr + 1;
            int count = 1;
            while(S[innerPtr] == S[outerPtr]){
                count++;
                innerPtr++;
            }
            if(count >= 3){
                eleMap[S[outerPtr]].push_back(outerPtr);
                eleMap[S[outerPtr]].push_back(innerPtr - 1);
                result.push_back(eleMap[S[outerPtr]]);
                eleMap[S[outerPtr]].clear();
            }
            outerPtr = innerPtr;
        }

        return result;
    }
};

猜你喜欢

转载自blog.csdn.net/rpybd/article/details/82535036