leetcode—-字串——830. Positions of Large Groups

NO IMAGE

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

上週比賽出的新題,自己寫了一下,一遍過(小得意嘻嘻):

class Solution {
public:
vector<vector<int>> largeGroupPositions(string S) {
vector<vector<int>> output;
// 1<=s<=1000;
int cnt=0;
int start=0;
int end_loc=0;
int temp=0;
for(auto &i:S){
vector<int> loc;
temp=start;
while(i==S[temp]){
temp;
cnt;
}
if(cnt>=3){
loc.push_back(start);
end_loc=start cnt-1;
loc.push_back(end_loc);
(output).push_back(loc);
}
start =cnt;
cnt=0;
}
return output;
}
};

排版好亂。。感覺使用了tab的原因。。。