92.较大分组的位置

题号830:

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

例如,在字符串中,就含有,,,和这样的一些分组。

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

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

示例 1:

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

示例 2:

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

示例 3:

输入: "abcdddeeeeaabbbcd"

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

说明:

解题思路:

遍历字符串,用一个变量记录连续相等的字符的个数,若变量值大于等于3,则为较大分组。注意对最后一个分组的判断。

代码实现:

class Solution {

public:

vector> largeGroupPositions(string S) {

vector>arr;

int i=0,count=1;

for(;i

if(S[i]==S[i+1]){ // 连续字符还未结束

count++;

continue;

}

// 连续字符结束,判断是否为较大分组,count重置1

if(count>=3){

arr.push_back();

}

count=1;

}

// 对最后一个分组的判断

if(count>=3){

arr.push_back();

}

return arr;

}

};

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180628G0EBQO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券