LeetCode 1156. 单字符重复子串的最大长度

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串。

给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做,然后得到一些单字符重复的子串。
返回其中最长的子串的长度。

示例 1:
输入:text = "ababa"
输出:3示例 2:
输入:text = "aaabaaa"
输出:6示例 3:
输入:text = "aaabbaaa"
输出:4示例 4:
输入:text = "aaaaa"
输出:5示例 5:
输入:text = "abcdef"
输出:1提示:
1 <= text.length <= 20000
text 仅由小写英文字母组成。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/swap-for-longest-repeated-character-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把每个字符,每段的开始结束位置存起来
  • 在检查相邻的段之间的间距是不是1,进行分类讨论
class Solution {
public:int maxRepOpt1(string text) {text.push_back('-');//方便代码处理vector<vector<vector<int>>> p(26);// 存放每个字符每个连续段的 {开始位置,结束位置}char prev = text[0];int start = 0, ans = 1;for(int i = 0; i < text.size(); ++i){if(text[i] != prev){p[prev-'a'].push_back({start, i-1});ans = max(ans, i-start);//什么都不做的情况下的最大长度start = i;prev = text[i];}}for(int i = 0; i < 26; ++i){int len = p[i].size();//有多少段该字符for(int j = 1; j < len; ++j){int prevEnd = p[i][j-1][1];int n1 = p[i][j-1][1]-p[i][j-1][0]+1;int curStart = p[i][j][0];int n2 = p[i][j][1]-p[i][j][0]+1;if(curStart-prevEnd == 2)//隔一个字符{ans = max(ans, n1+n2+(len>2 ? 1 : 0));} //3段及以上,可以在多添加1个字符进来else//间隔多个字符{ans = max(ans, max(n1+1, n2+1));}	// 两段不能联通,只能过去1个字符}}return ans;}
};

20 ms 11.7 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

☆☆在Eclipse中编译NDK的so文件(普通安卓项目转换为NDK项目的设定)

1 将Native的编译链接配置加入项目中 2 进行编译 3 项目支持Native后&#xff0c;在首尾分别新增了两个编译过程 转载于:https://www.cnblogs.com/YangBinChina/p/3937287.html

小案例:利用图床自动化批量上传图片并获取图片链接

一、前言&#xff1a; 用python爬虫写了一个小脚本&#xff0c;用来自动上传图片到图床&#xff0c;然后返回链接&#xff0c;我们只需直接复制链接就可以。&#xff08;需要安装Requests库&#xff09;因为不同图床需要提交的POST表单不一致&#xff0c;所以在这里我用ImgURL…

LeetCode 497. 非重叠矩形中的随机点(前缀和+二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个非重叠轴对齐矩形的列表 rects&#xff0c;写一个函数 pick 随机均匀地选取矩形覆盖的空间中的整数点。 提示&#xff1a; 整数点是具有整数坐标的点。 矩形周边上的点包含在矩形覆盖的空间中。 第 i 个矩形 rects [i] [x1&#xff0…

win10蓝屏提示重新启动_电脑蓝屏五大要素,秒判蓝屏问题及处理!

电脑蓝屏是个老生常谈的问题&#xff0c;而蓝屏问题也是电脑问题中最为复杂的问题之一&#xff0c;别说电脑小白&#xff0c;就是电脑老鸟有时候面对蓝屏都会犯怵&#xff01;简单来说&#xff0c;电脑蓝屏就好像人类突然晕倒&#xff0c;或者最严重的情况直接死亡&#xff0c;…

小案例:利用Python获取Windows电脑WiFi密码

一、需求&#xff1a; 电脑上忘记wifi密码&#xff0c;直接用命令行便可查看所有的wifi密码 二、逻辑&#xff1a; 1、提取windows上所有的wifi名称 2、每一个wifi的信息存储在一个字典里 3、判断wifi密码是否存储在windows计算机里&#xff0c;不存在则忽略 4、密码存在…

sql 分页

1. top分页法 select top pageSize from tb where ID not in (select top pageSize*pageIndex from tb) select top pageSize from tb where ID > select Max(ID) from (select top pageSize*pageIndex from tb) as t 2. RowNum() select * from (select row_number() ove…

LeetCode 528. 按权重随机选择(前缀和+二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个正整数数组 w &#xff0c;其中 w[i] 代表下标 i 的权重&#xff08;下标从 0 开始&#xff09;&#xff0c;请写一个函数 pickIndex &#xff0c;它可以随机地获取下标 i&#xff0c;选取下标 i 的概率与 w[i] 成正比。 例如&#xf…

boss直聘改回系统头像_BOSS 直聘找工作,消息却已读不回?| 在线求职5条避坑指南...

前几天在半撇私塾的求职群里&#xff0c;一个同学反馈&#xff1a;在 BOSS 直聘求职的时候&#xff0c;为什么总是被「已读不回」呢&#xff1f;就连逛豆瓣的上班小组&#xff0c;都能遇到这样的反馈&#xff1a;为什么会出现「已读不回」的情况呢&#xff1f;关于这个问题的答…

解决问题:Python调用cmd命令,出现中文乱码

一、前言&#xff1a; Python如何使用OS模块调用cmd 在os模块中提供了两种调用 cmd 的方法&#xff0c;os.popen() 和 os.system() os.system(cmd) 是在执行command命令时需要打开一个终端&#xff0c;并且无法保存command命令的执行结果。 os.popen(cmd,mode) 打开一个与c…

LeetCode 587. 安装栅栏 / LintCode 1152. 安装栅栏(凸包检测:排序+叉积正负判断+正反扫描+去重)

文章目录1. 题目2. 解题1. 题目 在一个二维的花园中&#xff0c;有一些用 (x, y) 坐标表示的树。 由于安装费用十分昂贵&#xff0c;你的任务是先用最短的绳子围起所有的树。 只有当所有的树都被绳子包围时&#xff0c;花园才能围好栅栏。 你需要找到正好位于栅栏边界上的树的…

arduino读取水位传感器的数据显示在基于i2c的1602a上_XSB-IC-S2智能水位监测仪-老友网...

XSB-IC-S2智能水位监测仪 多功能本身就是智能仪器仪表的一个特点。例如&#xff0c;为了设计速度较快和结构较复杂的数字系统&#xff0c;仪器生产厂家制造了具有脉冲发生器、频率合成器和任意波形发生器等功能的函数发生器。这种多功能的综合型产品不但在性能上(如准确度)比专…

七夕小案例:用代码给心爱的她画一个爱心

一、爱心示例&#xff1a; 二、开始写代码&#xff1a; /* * Hi。宝贝&#xff01; * 这么久了。还没和宝贝说过我的工作呢&#xff01; * 我是个前端工程师。俗称程序员。网页相关。 * 如这个页面。就是个什么也没有的网页。 * 我的工作就是给这种空白的页面加点儿东西。 * 嗯…

在asp.net 2.0中使用SqlBulkCopy类迁移数据

在asp.net 2.0中使用SqlBulkCopy类迁移数据 (转&#xff09; http://jackyrong.cnblogs.com/archive/2005/08/29/225521.html 我们经常要在一个表中将数据迁移到另一个表&#xff0c;当然&#xff0c;用的方法十分多了。在.net 2.0中&#xff0c;提供了一个sqlbulkcopy类&#…

小案例:13行python代码实现对微信进行推送消息

一、前言&#xff1a; Python可以实现给QQ邮箱、企业微信、微信等等软件推送消息&#xff0c;今天咱们实现一下Python直接给微信推送消息。 这里咱们使用了一个第三方工具pushplus 二、单人推送 实现步骤&#xff1a; 1、用微信注册一个此网站的账号 2、将token复制出来&am…

python书籍_Python书籍大汇总——入门到实战

学习Python的朋友们越来越多&#xff0c;当当网和京东上面的Python类编程书籍&#xff0c;也从几年前寥寥无几到现在多的不知道选哪本才好了的地步。无论是自学还是参加培训班跟着老师学习&#xff0c;我们都需要几本实用的Python书&#xff0c;系统全面的掌握Python编程的相关…

LeetCode 87. 扰乱字符串(记忆化递归 / DP)

文章目录1. 题目2. 解题2.1 记忆化递归2.2 动态规划1. 题目 给定一个字符串 s1&#xff0c;我们可以把它递归地分割成两个非空子字符串&#xff0c;从而将其表示为二叉树。 下图是字符串 s1 “great” 的一种可能的表示形式。 great/ \gr eat/ \ / \ g r e a…

信号量的分类

信号量的分类Mutual Exclusion Semaphores&#xff08;互斥&#xff09;&#xff1a;一种特殊的二进制信号量&#xff0c;专门针对互斥操作进行了优化。Binary Semaphores&#xff08;二进制&#xff09;&#xff1a;完成互斥、同步操作的最佳方式&#xff1b;速度最快&#xf…

问题总结:一个 list 使用 for 遍历,边循环边删除的问题

一、需求&#xff1a; 对一个 list 数据类型写一个循环删除的程序 二、问题 来&#xff0c;我们来看看代码跟效果&#xff1a; # 初始化一个 list 列表&#xff0c;为了下边的方便比较&#xff0c;我就使用跟 list 索引来做 list 的元素 datas [0,1,2,3,4]# 打印元素组&am…

cpu使用率_漫话性能:CPU使用率

序言CPU 使用率是最直观和最常用的系统性能指标&#xff0c;更是我们在排查性能问题时&#xff0c;通常会关注的第一个指标。节拍率为了维护 CPU 时间&#xff0c;Linux 通过事先定义的节拍率&#xff08;内核中表示为 HZ&#xff09;&#xff0c;触发时间中断&#xff0c;并使…

TensorFlow 2.0 - 自定义模型、训练过程

文章目录1. 自定义模型2. 学习流程学习于&#xff1a;简单粗暴 TensorFlow 2 1. 自定义模型 重载 call() 方法&#xff0c;pytorch 是重载 forward() 方法 import tensorflow as tf X tf.constant([[1.0, 2.0, 3.0],[4.0, 5.0, 6.0]]) y tf.constant([[10.0],[20.0]])clas…