📅  最后修改于: 2023-12-03 15:37:15.117000             🧑  作者: Mango
给定一个字符串,找到具有连续相等且最长的字符序列的长度。例如,在字符串“ AABBBCCCC”中,最长的连续相等的字符序列为“ CCCC”,长度为4。
一个整数,表示具有相同字符最长的连续序列的长度。
输入
ABCDDEEEEEFGHII
输出
5
我们可以使用一个计算器变量 count
和另一个变量 max_count
来追踪最长的连续字符集的长度,以及一个变量 prev_char
来追踪上一个字符值。 然后,我们遍历字符串,并对于每个字符,如果当前字符等于上一个字符,则增加 count
的值。否则,我们检查当前计数器 count
是否大于 max_count
,如果是,则将其设置为 max_count
。最后,我们返回 max_count
的值。
def find_largest_seq_length(string):
max_count = 0
count = 1
prev_char = string[0]
for char in string[1:]:
if char == prev_char:
count += 1
else:
max_count = max(max_count, count)
count = 1
prev_char = char
return max(max_count, count)
该算法的时间复杂度为O(n),其中n是输入字符串的长度。我们遍历字符串一次并对于每个字符执行常数时间操作。空间复杂度为O(1),因为我们只使用了常数级别的附加存储。