365 字
2 分钟
力扣3456找出长度为K的最长子字符串

题目#

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

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

  1. 该子字符串 只包含一个唯一字符(例如,"aaa""bbb")。
  2. 如果该子字符串的 前面 有字符,则该字符必须与子字符串中的字符不同。
  3. 如果该子字符串的 后面 有字符,则该字符也必须与子字符串中的字符不同。

如果存在这样的子串,返回 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 仅由小写英文字母组成。

思路#

简单题, 只需要维护一个temp表示当前数并满在满足条件的时候返回true

题解#

func hasSpecialSubstring(s string, k int) bool {
temp := 0
for i := range s {
temp++
if i == len(s) - 1 || s[i] != s[i + 1] {
if temp == k {
return true
}
temp = 0
}
}
return false
}
力扣3456找出长度为K的最长子字符串
https://mizuki.mysqil.com/posts/力扣53---副本/力扣53/
作者
猫梦
发布于
2025-12-19
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00