leetcode hot 100 划分字母区间

763. 划分字母区间

已解答

中等

相关标签

相关企业

提示

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s

返回一个表示每个字符串片段的长度的列表。

复制代码
class Solution(object):
    def partitionLabels(self, s):
        """
        :type s: str
        :rtype: List[int]
        """
        hashmap = {}
        for index , i in enumerate(s):
            if hashmap.get(i)==None:
                hashmap[i]=[index,index]
            else:
                hashmap[i][1] = index

        # 左臂右弼的()
        start = hashmap[s[0]][0]
        end =  hashmap[s[0]][1]
        ans = []
        for i in range(len(s)):
            if i>end:
                ans.append(end - start+1)
                start = i
                end =  hashmap[s[i]][1]

            if hashmap[s[i]][1] > end:
                end = hashmap[s[i]][1]
        ans.append(end-start+1)
        return ans

这个很简单的贪心算法,也就是遍历一遍,然后看看遍历内的东西最远额能到哪里,如果遍历到达了之前的元素到达的最远,那就是一个划分

相关推荐
愣头不青7 分钟前
96.不同的二叉搜索树
数据结构·算法·leetcode
AI科技星29 分钟前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
ab15151737 分钟前
3.27完成3(指针)、13、41、44(指针)、50、51、95、96、97
算法
AI成长日志1 小时前
【强化学习专栏】深度强化学习技术演进:DQN、PPO、SAC的架构设计与训练优化
人工智能·算法·架构
郭逍遥1 小时前
[Godot] JPS跳点寻路和RVO避障
算法·godot·启发式算法
rgb2gray1 小时前
论文详解:基于POI数据的城市功能区动态演化分析——以北京为例
人工智能·算法·机器学习·回归·gwr
m0_734998011 小时前
Day 26
数据结构·c++·算法
信奥卷王1 小时前
2026年03月GESPC++二级真题解析(含视频)
算法
从零开始学习人工智能1 小时前
国产阿特拉斯无人机蜂群核心算法(一)
算法·无人机
励志的小陈2 小时前
双指针算法--移除元素、删除有序数组中的重复项、合并两个有序数组
算法