leetcode----字符串------830. 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


上周比赛出的新题,自己写了一下,一遍过(小得意嘻嘻):

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的原因。。。

猜你喜欢

转载自blog.csdn.net/xuchen1230/article/details/80222516