Find positions of largest groups of characters in a String with Python

The question

Take a string S of lowercase letters.

These letters form consecutive groupings of like characters.

Find groups with 3 or more like characters and return a list of lists of starting and ending index for each character group.

Elaboration and examples

If we show an example, we could say S = "abbcccdeffffy".

This string has 2 groups, c and f who’s consecutive characters are of 3 or more.

You need to return a list of lists with the starting and ending index, for the above example, this would be [[3,5],[8,11]]

Another example would be:

S = "nfjsaaaaaebbfbbbfennjheeeeej"

result = [[4,8],[13,15],[22,26]]

Writing some code

# Our function wrapper def solveConsecutiveGroupIndexes(S): # store list of lists groups = [] # keep track of loop item i = 0 # loop through input string for j in range(len(S)): # if `is last item` or # `current item is not the same as next item` if j==len(S)-1 or S[j]!=S[j+1]: # if current string index minus loop index+1 is 3 or more if j-i+1 >= 3: # add start and end end index to groups groups.append([i, j]) # increment next i = j+1 # return result return groups
Code language: Python (python)

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments