当前位置: 首页 > news >正文

市北建筑建网站哪家好绍兴网站设计公司

市北建筑建网站哪家好,绍兴网站设计公司,免费crm网站不用下载的软件,网站开发成本有哪些题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。…

题目描述

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

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

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

示例 1:
输入: s = “ababcbacadefegdehijhklij”
输出: [9,7,8]
解释:
划分结果为 “ababcbaca”、“defegde”、“hijhklij” 。
每个字母最多出现在一个片段中。
像 “ababcbacadefegde”, “hijhklij” 这样的划分是错误的,因为划分的片段数较少。

示例 2:

输入: s = “eccbbbbdec”
输出: [10]

提示:

  • 1 <= s.length <= 500
  • s 仅由小写英文字母组成

代码及注释

func partitionLabels(s string) []int {// 创建一个数组来存储每个字符最后出现的位置lastPos := make([]int, 26)// 结果数组,用于存储每个分区的长度res := make([]int, 0)// 遍历字符串,记录每个字符最后出现的位置for i, c := range s {lastPos[c - 'a'] = i}// 初始化分区的开始和结束位置start, end := 0, 0// 再次遍历字符串来确定分区for i, c := range s {// 更新当前分区的结束位置为当前字符的最后出现位置end = max(end, lastPos[c - 'a'])// 如果当前位置i等于当前分区的结束位置,说明找到了一个分区if i == end {// 计算当前分区的长度并添加到结果数组中res = append(res, end - start + 1)// 更新下一个分区的开始位置start = end + 1}}// 返回结果数组return res
}// 返回两个数的最大值
func max(a, b int) int {if a > b {return a}return b
}

代码解释

  1. 记录每个字符的最后出现位置

    for i, c := range s {lastPos[c - 'a'] = i
    }
    

    这里我们遍历字符串s并记录每个字符最后出现的位置。这样,当我们遍历字符串以确定子串边界时,我们可以直接查找每个字符的最后出现位置。

  2. 确定子串的边界

    for i, c := range s {end = max(end, lastPos[c - 'a'])if i == end {res = append(res, end - start + 1)start = end + 1}
    }
    

    在这个循环中,我们遍历字符串s。对于每个字符,我们更新当前子串的结束位置end为当前字符的最后出现位置。当i == end时,意味着我们找到了一个子串,其边界是startend。我们计算这个子串的长度并将其添加到结果数组res中,然后更新startend + 1以寻找下一个子串。

  3. 返回结果数组

    return res
    

    最后,我们返回结果数组res,其中包含了所有子串的长度。

通过这种方法,我们可以有效地找到字符串s中所有满足条件的子串,其中每个字母只出现在一个子串中。

http://www.yayakq.cn/news/273241/

相关文章:

  • 高校学生红色网站建设企业订单管理系统软件
  • 黔西南州建设局网站营销型网站是通过对网
  • 祁东网站建设电子商务网站建设项目的阶段的划分
  • 建设部门的网站app开发公司定制小程序
  • 佛山企业网站建设服务桂林尚品网络做的网站好不好
  • 口碑好网站建设报价企业邮箱申请流程
  • 设计师网站图片制作营销网页
  • 做网站买什么品牌笔记本好阿里云网站域名备案
  • 郑州网站+建设中国纪检监察报数字报
  • 网站建设送企业邮箱吗如何把自己写的html变成网站
  • 网站建设藤设计东莞出行政策有变了
  • 手机自建网站南宁室内设计学校
  • 用wordpress建立专业网站视频教程怎么做卡盟网站免费
  • 怎么把文件发送到网站iis7 新建网站
  • php做直播网站wordpress即时聊天插件
  • 建设工程信息比较好的网站什么网站需要数据库
  • 网站dns多久刷新跟黄聪学WordPress主题开发
  • 黄冈网站建设哪家专业苏州建设公司网站
  • 建设家居网站辽宁建设建设工程信息网
  • 进下加强新闻宣传网站建设wordpress全屏背景
  • 用vue做pc端网站好吗网站建设评价指标
  • 坤和建设 网站交换链接营销的典型案例
  • 网站空间维护网站开发方倍工作室
  • 衡阳做网站建设的公司大学网页设计与制作教材
  • 昆明网站开发兼职群沈阳网站建设024w
  • 网站到期查询备案建筑设计学校排名
  • 电子商务网官方网站海外服务器 vps
  • 专门做电子书的网站深圳市seo上词贵不贵
  • 简单的个人网站制作流程ps做网站设计稿
  • 官方网站免费建设东莞app定制开发公司