队列4-统计不同字符数 【问题描述】 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 Given a string, Please find out the length of the longest substring that does not contain repeated characters. 提示:相同字符大小写算做两个不同字符,如Aa为2 【输入形式】 字符串的内容 【输出形式】 不含有重复字符的最长子串的长度 【样例输入】 abcabcbb 【样例输出】 3
时间: 2023-12-04 19:03:29 浏览: 49
寻找字符串中不包含重复字符的最长子串
您好,这个问题和您给出的题目不太一样呢。根据您的要求,我可以提供一个 Python 的解法,如下所示:
```python
def length_of_longest_substring(s: str) -> int:
# 用一个字典记录每个字符上一次出现的位置
last_seen = {}
left = 0 # 不含重复字符的子串的左端点
res = 0 # 不含重复字符的子串的最大长度
for i, c in enumerate(s):
if c in last_seen and last_seen[c] >= left:
# 如果当前字符出现过,而且上一次出现的位置在当前子串中,更新左端点
left = last_seen[c] + 1
last_seen[c] = i # 记录当前字符出现的位置
res = max(res, i - left + 1) # 更新最大长度
return res
```
您可以将输入字符串作为参数传递给 `length_of_longest_substring` 函数,然后它会返回不含有重复字符的最长子串的长度。比如对于输入样例 `"abcabcbb"`,函数的返回值应该为 `3`。
阅读全文