📅  最后修改于: 2023-12-03 15:42:21.230000             🧑  作者: Mango
本题目是一道算法题,要求程序员实现一个函数,在给定的字符串中查找连续出现的小写字母的长度最大值,并返回该长度。
max_len(s: str) -> int
s
:表示给定的字符串assert max_len("abcdEfg") == 3
assert max_len("a1b2c3d4E5f6g7") == 1
assert max_len("abcdeFGhijk") == 5
assert max_len("ABCD1234") == 0
本题可以使用双指针法来解决。定义左右指针,用来表示一个连续出现的小写字母的左右边界。遍历字符串,当遇到一个小写字母时,让右指针向右移动,直到遇到非小写字母为止,此时计算当前长度并更新最大长度。然后左指针移动到右指针的位置,重新开始寻找连续小写字母的长度。
def max_len(s: str) -> int:
max_len = 0
left = 0
right = 0
while right < len(s):
if s[right].islower():
right += 1
else:
max_len = max(max_len, right - left)
left = right
right += 1
return max(max_len, right - left)
以上代码片段为 Python 代码实现,使用 islower
方法来判断是否为小写字母,使用 max
方法来获取最大值。