LeetCode——830.较大分组的位置

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
  • 两种方法
    • 双指针遍历一次
      • 如果遇到不同于上一个相同的字母就换指针,然后比较区间长度大小
    • 加伪节点遍历一次
      • 也是找不到,然后看区间的大小

猜你喜欢

转载自blog.csdn.net/weixin_37724529/article/details/112238433