title: LeetCode
830. Positions of Large Groups
level: Easy
description:
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".
A group is identified by an interval [start, end], where start and end denote the start and end indices (inclusive) of the group. In the above example, "xxxx" has the interval [3,6].
A group is considered large if it has 3 or more characters.
Return the intervals of every large group sorted in increasing order by start index.
status: Success
class Solution:
def largeGroupPositions(self, s: str) -> List[List[int]]:
ansList = []
cnt = 1
start = 0
end = (len(s) -1)
flag = 0
for i in range(len(s)):
if i>0 and s[i-1]==s[i]:
print("c1:"+s[i])
cnt = cnt + 1
if i==(len(s)-1) and (cnt>=3):
flag = 1
ansList.append([start,i])
else:
if cnt >=3 :
flag = 1
print("AnsCnt:"+str(cnt))
ansList.append([start,i-1])
print("c2"+s[i])
start = i
cnt = 1
if flag == 0:
return []
print(ansList)
return ansList
Remark: