ZhangZhihui's Blog  
复制代码
def get_list_span(l: list):
    """
    For list ['a', 'a', 'a', 'b', 'c', 'c', 'd', 'd', 'd', 'd'], 
    its span list is [3, 0, 0, 1, 2, 0, 4, 0, 0, 0] .
    :param l: 
    :return: 
    """

    span_list = []
    span = 1
    for i in range(len(l)):
        if i == 0:                            # 第一项span设为1
            span_list.append(1)
        else:
            if l[i] == l[i-span]:             # 与之前项相等,之前项的span值加1,本项span设为0,span值加1
                span_list[i-span] += 1
                span_list.append(0)
                span += 1
            else:                             # 与之前项不等,本项span设为1,span值恢复为1
                span_list.append(1)
                span = 1
    return span_list
复制代码

 

posted on   ZhangZhihuiAAA  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
 
点击右上角即可分享
微信分享提示