zoukankan      html  css  js  c++  java
  • 1438. 较大分组的位置(回顾)

    1438. 较大分组的位置

    中文English

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

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

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

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

    样例

    Example 1:

    Input: "abbxxxxzzy"
    Output: [[3,6]]
    Explanation: "xxxx" is the single large group with starting  3 and ending positions 6.
    

    Example 2:

    Input: "abc"
    Output: []
    Explanation: We have "a","b" and "c" but no large group.
    

    Example 3:

    Input: "abcdddeeeeaabbbcd"
    Output: [[3,5],[6,9],[12,14]]
    

    注意事项

    1 <= S.length <= 1000

     
     
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        '''
        大致思路:
        1.初始化res = [],外层循环,给定初始值i= 0,c =1计数,以及l=0,代表的是左边的索引,flag= False,代表的是如果没有找到符合条件的,否则找到大于等于3的
        2.循环,如果c==2,则说明符合,记录左边的索引。然后c+=1,一直到下一个值不符合的时候为止,c=1,重置。如果flag=True,则说明到临界值,写入res里面,重置
        '''
        def largeGroupPositions(self,S):
            res = []
            i = 0
            c = 1
            l = 0
            flag = False
            S = S + ' '
            while i < len(S) - 1:   
                if S[i] == S[i+1]:
                    print(S[i],S[i+1],c,i)
                    if c == 2:
                        flag = True
                        l = i - 1
                    c += 1
                else:
                    c = 1
                    if flag == True:
                        res.append([l,i])
                        flag = False      
                i += 1
            return res
  • 相关阅读:
    python 玩转列表list
    Python入门之_水仙花数
    自兴人工智能 字符串
    自兴人工智能 元组
    自兴人工智能 列表
    自兴人工智能 python特点了解
    python走迷宫
    (自兴人工智能) python 元组
    (自兴人工智能) 玩转 python 字符串
    (自兴人工智能)Python 列表(List)的灵活使用
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12773295.html
Copyright © 2011-2022 走看看