题目描述:一个字符串,找出连续三个以上相同的字符,并返回起始的index
题目思路:两个point分别指向头尾,i_end 一直在增加,当发现当前的数字目前cur_char不相等的时候,进行判断两者之差与3的大小,还有一种情况就是当i_end已经是最后一个数字的时候,也要进行判断。
class Solution:
def largeGroupPositions(self, S: str) -> List[List[int]]:
i_start = 0
cur_char = S[0]
r_list = []
for i_end in range(len(S)):
if S[i_end] != cur_char :
if 3<=i_end-i_start:
r_list.append([i_start, i_end-1])
i_start = i_end
cur_char = S[i_end]
elif i_end==len(S)-1:
if 2<=i_end-i_start:
r_list.append([i_start, i_end])
return r_list