LeetCode-python 830.较大分组的位置

题目链接
难度:简单       类型: 双指针


在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。

例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。

我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。

最终结果按照字典顺序输出。

示例1

输入: "abbxxxxzzy"
输出: [[3,6]]
解释: "xxxx" 是一个起始于 3 且终止于 6 的较大分组。

示例2

输入: "abc"
输出: []
解释: "a","b" 和 "c" 均不是符合要求的较大分组。

示例3

输入: "abcdddeeeeaabbbcd"
输出: [[3,5],[6,9],[12,14]]

解题思路


当S[i]不等于S[i-1]时,求分组的长度i-start,之后将start更新为i

代码实现

class Solution(object):
    def largeGroupPositions(self, S):
        """
        :type S: str
        :rtype: List[List[int]]
        """
        start, n, res = 0, len(S), []
        for i in range(1,n):
            if S[i] != S[i-1]:
                if i-start>=3:
                    res.append([start, i-1])
                start = i
        if n-1-start>=2:
            res.append([start, n-1])
        return res

本文链接:https://www.jianshu.com/p/9baa918e7768

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 难度:★★☆☆☆类型:字符串 在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。 ...
    玖月晴阅读 306评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,392评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,803评论 0 10
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,436评论 0 5
  • 这个世界的发展是否真的有一定的规律?所有的事情没发生前恐怕还是难以预料吧。所有的规律不过是基于发生过的事,然后得...
    Rullchine阅读 374评论 0 1