给定一个字符串找出最长不包含重复字段子符号的长度
时间: 2023-08-30 12:12:35 浏览: 81
机器学习(预测模型):新私家车注册和燃料类型的详细统计数据
好的,这是一个经典的算法问题。我可以通过滑动窗口来解决这个问题。具体步骤如下:
1.定义一个指针j和一个哈希表,记录每个字符最后出现的位置。
2.定义一个变量max_len,记录最长的不包含重复字段子符号的长度。
3.遍历字符串,每次将字符加入哈希表中,并移动指针j。如果字符已经在哈希表中出现过,将指针j移到上一次出现该字符的位置后一位。此时,更新max_len的值。
4.遍历完成后,max_len的值即为最长的不包含重复字段子符号的长度。
代码实现如下:
def longest_substring(s):
last_occurrence = {}
start = 0
max_len = 0
for i, c in enumerate(s):
if c in last_occurrence and last_occurrence[c] >= start:
start = last_occurrence[c] + 1
else:
max_len = max(max_len, i - start + 1)
last_occurrence[c] = i
return max_len
希望这个答案能够满足您的需求。
阅读全文