首页 > 其他分享 >763. 划分字母区间

763. 划分字母区间

时间:2023-05-09 21:15:06浏览次数:27  
标签:片段 hash int 763 字母 len 划分 res

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

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

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


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

标准解法


class Solution {
public:
    vector<int> partitionLabels(string s) {
        int len = s.size();
        if(len == 1) return {1};
        int hash[27] = {0};
        for(int i = 0; i < len; i++){
            hash[s[i]-'a'] = i;
        }
        vector<int> res;
        res.clear();
        int start = 0;
        int M = hash[s[0] - 'a'];
        for(int i = 0; i < len; i++){
            if(M < hash[s[i] - 'a']){
                M = hash[s[i] - 'a'];
            }
            if(i == M){
                res.emplace_back(i - start + 1);
                start = i+1;
            }
        }
        return res;
    }
};

标签:片段,hash,int,763,字母,len,划分,res
From: https://www.cnblogs.com/lihaoxiang/p/17386274.html

相关文章

  • VOC标签格式转yolo格式并划分训练集和测试集
    VOC标签格式转yolo格式并划分训练集和测试集经常从网上获取一些目标检测的数据集资源标签的格式都是VOC(xml格式)的,而yolov5训练所需要的文件格式是yolo(txt格式)的,就需要对xml格式的标签文件转换为txt文件。同时训练自己的yolov5检测模型的时候,数据集需要划分为训练集和验证集。......
  • LeetCode 242. 有效的字母异位词
    题目链接:LeetCode242.有效的字母异位词题意:本题是要判断两个字符串s和t,是否是字母异位词,所谓字母异位次就是如果s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。解题思路:首先我们很容易想到,最简单的思路就是先遍历一遍s字符串,统计出每个字母出现的次数......
  • 几何问题——四边形被划分为四个三角形求面积
    1、题目2、解法遇到这类题型(四边形被划分,两个钝角三角形,两个锐角三角形),直接上手三角形底相同,高与面积成正比做公共垂线运算......
  • 验证码,发送短信验证码,校验确认密码和密码,密码需要数字字母特殊字符任选2种组合
    密码需要数字字母特殊字符任选2种组合constvalidatePwd=(rule,value,callback)=>{constreg=/(?!^(\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[\w~!@#$%^&*?]{8,32}$/if(reg.test(value)==true){callback()}else{callback(newError(&#......
  • CF1763D
    ValidBitonicPermutations-洛谷|计算机科学教育新生态(luogu.com.cn)题意转化一下:先考虑如何构造一个双调的序列。本题的解题核心是:如何构造出双调的序列?(主要是这个技巧要知道)那么如何构造呢?首先来看1,可以放在最左边,也可以放在最右边。        2,同理......
  • 【机器学习基础】数据集的划分比例
    前言 参考1. 机器学习:训练集、验证集、测试集分配比例_ChrisKang的博客-CSDN博客;2. 数据集的划分,验证集参与训练了吗?_无枒的博客-CSDN博客;完......
  • 打印空心字母金字塔
    打印空心字母金字塔今天独自做了一个这个题,简单的分享一下我的思路和代码#include<stdio.h>intmain(){////charch;////ch=getchar();////////这里我们先输出带有E行的图案//for(inti='A';i<='A';i++){//用字符来做循环条件的参数// for(intj=0;j<39;j++){//先打......
  • Linux 存储结构与磁盘划分
    主要常见的目录定义1.      /boot            开机所需文件----内核,开机菜单及所需配置文件2.      /dev             任何设备与接口都以文件形式存放在这目录3.      /etc              配置文件4.      /hom......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集 、 202.
    ......
  • 模糊查询+首字母查询组合框
     <spanclass="label">站名称:</span><divid="selectMain"><inputid="myInputOne"name="Q_bdzmc_S"onkeyup="InputAndSelect.ke......