365 字
2 分钟
力扣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 <= 100s仅由小写英文字母组成。
思路
简单题, 只需要维护一个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/ 部分信息可能已经过时