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

【LeetCode热题100】【贪心算法】划分字母区间

题目链接:763. 划分字母区间 - 力扣(LeetCode)

要将一个字符串划分为多个子串,要求每个字母只能出现在一个子串里面

如果一个字母的当前位置是它在这个字符串里面最后一次出现的位置,那么这里就应该划分出来成为子串

可以先用一个数组记录每个字母的最后出现的位置,然后再次遍历字符串,如果当前字母的位置就是该字母最后出现的位置,那么此处应该分离

class Solution {
public:vector<int> partitionLabels(string s) {int last[26];for (int i = 0; s[i]; ++i)last[s[i] - 'a'] = i;int begin = 0, end = 0;vector<int> ans;for (int i = 0; s[i]; ++i) {end = max(end, last[s[i] - 'a']);if (i == end) {ans.push_back(end - begin + 1);begin = end + 1;}}return ans;}
};

http://www.lryc.cn/news/340666.html

相关文章:

  • 第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛部分WP
  • 如何在Python中使用matplotlib库进行数据可视化?
  • 网工基础协议——TCP/UDP协议
  • ClickHouse--16--普通函数
  • 03-JAVA设计模式-组合模式
  • C++发票识别、发票查验接口示例,您的“发票管理专家”
  • 【电控笔记6.2】拉式转换与转移函数
  • 第十五届蓝桥杯题解-数字接龙
  • 【vue】绑定事件 v-on
  • 【应用】SpringBoot-自动配置原理
  • 中文编程入门(Lua5.4.6中文版)第十二章 Lua 协程 参考《愿神》游戏
  • C++笔记之注册回调函数常见的5种情况对比
  • 人工智能揭示矩阵乘法的新可能性
  • 实在智能携手长江新零售俱乐部:探秘实在Agent数字员工,开启零售品牌增长新篇章
  • 计算机科学与导论 第十七 十八章 计算理论,人工智能
  • linux 设置定时任务---学习
  • 钡铼IOy系列模块深挖工业场景需求提供丰富多样的I/O解决方案
  • 【刷题笔记】第三天
  • 开源模型应用落地-LangChain试炼-CPU调用QWen1.5(一)
  • STM32-模数转化器
  • 算法刷题记录2
  • 中国代工巨头旗下芯片公司遭网络攻击,千兆字节数据被泄露
  • 【ARM 裸机】汇编 led 驱动之基本语法
  • scala---基础核心知识(变量定义,数据类型,流程控制,方法定义,函数定义)
  • OSPF星型拓扑和MGRE全连
  • 智能时代中的工业应用中前所未有的灵活桥接和I/O扩展功能解决方案MachXO2系列LCMXO2-1200HC-4TG100I FPGA可编程逻辑IC
  • php:实现压缩文件上传、解压、文件更名、压缩包删除功能
  • 【机器学习】科学库使用第5篇:Matplotlib,学习目标【附代码文档】
  • Java面试八股文(JVM篇)(❤❤)
  • 「51媒体」如何有效进行媒体邀约,提升宣传传播效果?