1. 程式人生 > >Positions of Large Groups

Positions of Large Groups

cal XA bcd OS ans ogr tin inpu TP

Positions of Large Groups

In a string S of lowercase letters, these letters form consecutive groups of the same character.

For example, a string like S = "abbxxxxzyy" has the groups "a", "bb", "xxxx", "z" and "yy".

Call a group large if it has 3 or more characters. We would like the starting and ending positions of every large group.

The final answer should be in lexicographic order.

Example 1:

Input: "abbxxxxzzy"
Output: [[3,6]]
Explanation: "xxxx" is the single large group with starting  3 and ending positions 6.

Example 2:

Input: "abc"
Output: []
Explanation: We have "a","b" and "c" but no large group.

Example 3:

Input: "abcdddeeeeaabbbcd"
Output: [[3,5],[6,9],[12,14]]

Note: 1 <= S.length <= 1000

 1 vector<vector<int>> largeGroupPositions(string S) {
 2         vector<vector<int>> res;
 3         for(int i = 0; i < S.length(); ){
 4             int j = i + 1;
 5             while(S[j] == S[i]){
 6                 j++;
 7             }
8 if(j-i >= 3){ 9 res.push_back({i,j-1}); //二維vector可直接插入vector 10 } 11 i = j; 12 } 13 return res; 14 15 }

註意點:二維vector插入的用法。

Positions of Large Groups