题解的核心思路是通过一次遍历字符串来找到最长的连续相同字符的子串。首先设定两个变量,max_length 用于记录遍历过程中遇到的最大长度,current_length 用于记录当前连续字符的长度。遍历从第二个字符开始,如果当前字符与前一个字符相同,则增加 current_length 的长度;如果不同,则将 current_length 重置为 1。每次连续字符长度增加时,使用 max 函数更新 max_length。最终,max_length 将包含所需的最大连续字符长度。
时间复杂度: O(n)
空间复杂度: O(1)
class Solution:
def maxPower(self, s: str) -> int:
# 初始化最长子串长度和当前子串的长度
max_length = 1
current_length = 1
# 遍历字符串(从第二个字符到最后一个字符)
for i in range(1, len(s)):
# 如果当前字符和前一个字符相同
if s[i] == s[i - 1]:
# 增加当前长度
current_length += 1
# 更新最长子串长度
max_length = max(max_length, current_length)
else:
# 如果当前字符和前一个字符不同,则重新计数
current_length = 1
return max_length