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.
Example 1:
Input: s = "abbxxxxzzy"
Output: [[3,6]]
Explanation: "xxxx" is the only large group with start index 3 and end index 6.
Example 2:
Input: s = "abc"
Output: []
Explanation: We have groups "a", "b", and "c", none of which are large groups.
Example 3:
Input: s = "abcdddeeeeaabbbcd"
Output: [[3,5],[6,9],[12,14]]
Explanation: The large groups are "ddd", "eeee", and "bbb".
Example 4:
Input: s = "aba"
Output: []
Constraints:
Remark : Review # Sunday Funday # Let me Relax
status : PASS
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