"""
最长子串
给定一个字符串,找出其中不含有重复字符的最长子串的长度。
注意:是子串的长度,不是子串。
"""
def sub_string_length(s):
"""
计算给定字符串中最大的不重复子字符串的长度。
:param s: 输入的字符串
:return: 最大的不重复子字符串的长度
"""
# 初始化最大长度为0
result = 0
# 使用集合记录当前不重复子字符串的字符
s_set = set()
# 获取字符串的长度
length = len(s)
# 初始化最后一个字符的位置为-1,用于后续遍历
pos = -1
# 遍历字符串中的每个字符
for i in range(length):
# 如果不是第一个字符,移除已遍历过的字符,以更新集合
if i != 0:
s_set.remove(s[i - 1])
# 向后寻找不重复的字符,更新集合和pos的值
while pos + 1 < length and s[pos + 1] not in s_set:
s_set.add(s[pos + 1])
pos += 1
# 更新最大长度
result = max(result, pos - i + 1)
# 返回最大长度
return result
# 调用函数并打印结果
print(sub_string_length("xyyabcdy"))
最长子串:找出不含有重复字符的最长子串的长度
未经允许不得转载:创想未来 » 最长子串:找出不含有重复字符的最长子串的长度

创想未来
评论前必须登录!
注册