一次for循环
class Solution:
def largeGroupPositions(self, s: str) -> List[List[int]]:
length = len(s)
num = 1
res = list()
for i in range(length):
if i == length-1 or s[i] != s[i+1]:
if num>2:
res.append([i-num +1, i])
num = 1
else:
num += 1
return res
双指针遍历
每当i和j所对应的元素不同时,判断子序列长度是否大于2,若大于2保存序列首尾索引,并将j赋值给i
class Solution:
def largeGroupPositions(self, s: str) -> List[List[int]]:
res=list()
i=0
length=len(s)
while i<length:
j=i+1
while j<length and s[j]==s[i]:
j+=1
if j-i>2:
res.append([i,j-1])
i=j
return res