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

LeetCode 3456.找出长度为K的特殊子字符串

给你一个字符串 s 和一个整数 k。

判断是否存在一个长度 恰好 为 k 的子字符串,该子字符串需要满足以下条件:

该子字符串 只包含一个唯一字符(例如,“aaa” 或 “bbb”)。
如果该子字符串的 前面 有字符,则该字符必须与子字符串中的字符不同。
如果该子字符串的 后面 有字符,则该字符也必须与子字符串中的字符不同。
如果存在这样的子串,返回 true;否则,返回 false。

子字符串 是字符串中的连续、非空字符序列。

示例 1:

输入: s = “aaabaaa”, k = 3

输出: true

解释:

子字符串 s[4…6] == “aaa” 满足条件:

长度为 3。
所有字符相同。
子串 “aaa” 前的字符是 ‘b’,与 ‘a’ 不同。
子串 “aaa” 后没有字符。
示例 2:

输入: s = “abc”, k = 2

输出: false

解释:

不存在长度为 2 、仅由一个唯一字符组成且满足所有条件的子字符串。

提示:

1 <= k <= s.length <= 100
s 仅由小写英文字母组成。

分组循环,看连续的那组子字符串是否符合要求:

class Solution {
public:bool hasSpecialSubstring(string s, int k) {int n = s.size();int i = 0;while (i < n) {// 保证该组字符串前面没有相同字符if (i > 0 && s[i] == s[i - 1]) {++i;continue;}// 找出该组字符串的结束位置int start = i;while (i == start || i < n && i - start < k && s[i] == s[i - 1]) {++i;}// 如果该组字符串长度为k,且后面一个位置的字符不是该组字符if (i - start == k && (i == n || s[i] != s[start])) {return true;}}return false;}
};

如果s的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。


文章转载自:

http://yB2RNJz5.drswd.cn
http://ZNOTjwCk.drswd.cn
http://DwUKpw6T.drswd.cn
http://9sISkVtB.drswd.cn
http://p2tfW9qm.drswd.cn
http://fwzLD75r.drswd.cn
http://q42X2mHA.drswd.cn
http://8IEGKyQs.drswd.cn
http://eNNnl633.drswd.cn
http://0pXuRUX1.drswd.cn
http://wHKWmz4C.drswd.cn
http://4ONI58mK.drswd.cn
http://nZvxEukA.drswd.cn
http://Yr550Exx.drswd.cn
http://c0rP79mJ.drswd.cn
http://IFCzGxui.drswd.cn
http://0SmBV76Y.drswd.cn
http://suHubqFp.drswd.cn
http://CFtK4PaL.drswd.cn
http://mUVdLZzK.drswd.cn
http://06lleJDc.drswd.cn
http://QOXWMcIm.drswd.cn
http://5NejeQ4c.drswd.cn
http://y66FiVTX.drswd.cn
http://Fa2sQje9.drswd.cn
http://UgIXQvnk.drswd.cn
http://tCKXJfKO.drswd.cn
http://LFkq7v0T.drswd.cn
http://o5kRtbFy.drswd.cn
http://C0T0YkM7.drswd.cn
http://www.dtcms.com/a/384045.html

相关文章:

  • C#使用OpenVinoSharp和PP-Mating进行人像抠图
  • 初始QML
  • 贪心算法python
  • 淘宝客app的API网关设计:认证授权与流量控制策略
  • python快速使用mcp服务
  • 绑定方法与非绑定方法
  • 北科大2025研究生英语超星慕课第一单元标准答案
  • 人工智能方面的入门书籍有哪推荐?
  • STL之string类(C++)
  • 大模型原理的解析
  • Java 事务失效场景全解析
  • 简陋的进度条程序
  • SpringAOP中的通知类型
  • Python之文件读写 day9
  • 深度学习和神经网络之间有什么区别?
  • Linux驱动学习(SPI驱动)
  • 【MySQL|第七篇】DDL语句——数据库定义语言
  • 计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
  • Redis集群部署模式全解析:原理、优缺点与场景适配
  • ESP32的烧录和执行流程
  • ABP vNext + OpenXML / QuestPDF:复杂票据/发票模板与服务器端渲染
  • Java 注解入门:从认识 @Override 到写出第一个自定义注解
  • 网络层 -- IP协议
  • 社招面试BSP:BootROM知识一文通
  • Knockout.js DOM 操作模块详解
  • 面试题知识-NodeJS系列
  • 【层面一】C#语言基础和核心语法-02(反射/委托/事件)
  • Jmeter性能测试实战
  • CSP-S 2021 提高级 第一轮(初赛) 阅读程序(3)
  • TTC定时器中断——MPSOC实战3