题解 | #牛群分组#

牛群分组

https://www.nowcoder.com/practice/cf7f1a2718754cac9f7ef56061ea3499

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return int整型一维数组
#
class Solution:
    def cowGrouping(self, s: str) -> List[int]:
        # write code here
        # 统计每个字母出现的次数
        letter_last_idx = {}  # 记录每个字母最后出现的位置
        result = []  # 存储每个分组的包含字母个数
        start, end = 0, 0  # 记录当前分组的起始和结束位置

        for i, char in enumerate(s):
            letter_last_idx[char] = i  # 更新字母最后出现的位置

        while end < len(s):
            current_char = s[end]
            max_last_idx = letter_last_idx[current_char]

            while end < max_last_idx:
                end += 1
                max_last_idx = max(max_last_idx, letter_last_idx[s[end]])

            result.append(end - start + 1)
            end += 1
            start = end

        return result

全部评论

相关推荐

10-21 16:54
门头沟学院 Java
后端转测开第一人:微服务没用 校招都不看微服务的 还有就是后端行情是这样的 找实习纯看运气 秋招更是吃运气和缘分 如果对代码没有极致的追求 可以转测开
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务