跳到主要内容

2981.找出出现至少三次的最长特殊子字符串I

链接:2981.找出出现至少三次的最长特殊子字符串I
难度:Medium
标签:哈希表、字符串、二分查找、计数、滑动窗口
简介:返回在 s 中出现 至少三次 的 最长特殊子字符串 的长度,如果不存在出现至少三次的特殊子字符串,则返回 -1 。

题解 1 - python

  • 编辑时间:2024-05-29
  • 执行用时:57ms
  • 内存消耗:16.49MB
  • 编程语言:python
  • 解法介绍:遍历。
class Solution:
def maximumLength(self, s: str) -> int:
n = len(s)
i = 0
counter = Counter()
while i < n:
j = i
while i < n and s[j] == s[i]: i += 1
for cnt in range(1, i - j + 1):
counter[s[j] * cnt] += i - j - cnt + 1
return max([len(item[0]) for item in counter.items() if item[1] >= 3], default = -1)