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

每日一题——763. 划分字母区间

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

代码:
 

class Solution {
public:
    vector<int> partitionLabels(string s) {
        //统计每个单词的最远出现位置
        int hash[27] = {0};
        for(int i = 0;i < s.size();i++)
        {
            hash[s[i] - 'a'] = i;
        }

        int left = 0;
        int right = 0;
        vector<int> result;
        for(int i = 0; i < s.size();i++)
        {
            right = max(right,hash[s[i] - 'a']);
            if(right == i)
            {   
                result.push_back(right-left+1);
                left = i+1;
            }
        }
        return result;
    }
};

贪心策略:
找到每个字母的最远出现位置,遍历s,如果i就是这个区间所有位置的最远出现位置,说明这个区间的所有字母都只出现再left到i了,此为一个区间,更新left为i+1,找下一个区间。

http://www.dtcms.com/a/58557.html

相关文章:

  • 【面试】Java 并发
  • 基于stm32的模拟电磁曲射炮研究
  • mysql的Innodb最大支持的索引长度是多少,以及索引长度怎么计算
  • Leetcode 3479. Fruits Into Baskets III
  • 蓝桥杯第二天:2023省赛C 1题 分糖果
  • unordered_set 的常用函数
  • 【python】Flask web框架
  • ble.sh 的安装和用法
  • 如何在SpringBoot中灵活使用异步事件?
  • C++—vector类的使用及模拟实现
  • Windows 11下Git Bash执行cURL脚本400问题、CMD/PowerShell不能执行多行文本等问题记录及解决方案
  • 进程(上)【Linux操作系统】
  • Web基础:HTML快速入门
  • doris:Elasticsearch
  • 六轴传感器ICM-20608
  • 10. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--Ocelot 网关--认证
  • VBA 数据库同一表的当前行与其他行的主键重复判断实现方案1
  • Spike RISC-V ISA 模拟器
  • doris :SAP HANA
  • gRPC学习笔记
  • 双指针算法——配合例题讲解
  • 镭神C32测试LEGO-LOAM
  • IntelliJ IDEA 2021版创建springboot项目的五种方式
  • 深度解析前端页面性能优化
  • Python与SQL深度融合实战案例:打造你的数据处理秘籍
  • C++后端服务器开发技术栈有哪些?有哪些资源或开源库拿来用?
  • 嵌入式八股C语言---指针与函数篇
  • ESP8266 入门(第 2 部分):使用 AT 命令
  • c#面试题整理7
  • JavaScript系列07-事件委托:深入剖析与实践技术