• Leetcode830.Positions of Large Groups较大分组的位置


    在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。

    例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。

    我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。

    最终结果按照字典顺序输出。

    示例 1:

    输入: "abbxxxxzzy" 输出: [[3,6]] 解释: "xxxx" 是一个起始于 3 且终止于 6 的较大分组。

    示例 2:

    输入: "abc" 输出: [] 解释: "a","b" 和 "c" 均不是符合要求的较大分组。

    示例 3:

    输入: "abcdddeeeeaabbbcd" 输出: [[3,5],[6,9],[12,14]]

    说明:  1 <= S.length <= 1000

    class Solution {
    public:
        vector<vector<int> > largeGroupPositions(string S) {
            vector<vector<int> > res;
            int len = S.size();
            if(len == 0)
                return res;
            int start = 0;
            int end = 0;
            char flag = S[0];
            for(int i = 1; i < len; i++)
            {
                end = i;
                if(S[i] != flag)
                {
                    end = i - 1;
                    if(end - start + 1 >= 3)
                    {
                        vector<int> temp;
                        temp.push_back(start);
                        temp.push_back(end);
                        res.push_back(temp);
                    }
                    flag = S[i];
                    start = i;
                }
            }
            if(end - start + 1 >= 3)
            {
                vector<int> temp;
                temp.push_back(start);
                temp.push_back(end);
                res.push_back(temp);
            }
            return res;
        }
    };
  • 相关阅读:
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)
    C++中virtual继承的深入理解
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433943.html
Copyright © 2020-2023  润新知