class Solution:
def largeGroupPositions(self, s: str) -> List[List[int]]:
if not s:
return []
#双指针
res = []
i=0
size = len(s)
while i<size:
j=i+1
while j<size and s[i]==s[j]:
j+=1
if j-i-1>=2:
res.append([i,j-1])
i=j
return res
#尾节点+一次遍历
res = []
a,b = 0,0
s = s+' '
for i in range(len(s)-1):
if s[i+1]!=s[i]:
b = i
if b-a>=2:
res.append([a,b])
a = i+1
return res
- 两种方法
- 双指针遍历一次
- 如果遇到不同于上一个相同的字母就换指针,然后比较区间长度大小
- 加伪节点遍历一次
- 也是找不到,然后看区间的大小
- 双指针遍历一次