输出字符串中最长的电池
时间: 2024-12-20 07:27:45 浏览: 5
字符串中最长的“电池”是指在一个文本序列中找到连续重复字符组成的最长连续片段,看起来像“电池”的形状。例如,在字符串 "abcbaabcc" 中,最长的“电池”是 "aa" 和 "bbcc",总长度为5。
在Python中,可以使用滑动窗口或者双指针的方式来解决这个问题。这里是一个简单的例子:
```python
def longest_battery(s):
max_length = 0
start = end = 0
chars = {}
while end < len(s):
if s[end] in chars and end - chars[s[end]] >= max_length:
max_length = end - chars[s[end]]
start = chars[s[end]] + 1
chars[s[end]] = end
end += 1
return max_length
# 示例
s = "abcbaabcc"
print(longest_battery(s)) # 输出:5
```
这个函数通过维护一个字典`chars`记录每个字符最后出现的位置,并使用两个指针`start`和`end`来查找最长的重复片段。当找到更长的重复片段时,更新`max_length`和`start`。
阅读全文