给定一个字符串 s ,请你使用Python编写代码找出其中不含有重复字符的最长子串的长度。
时间: 2023-10-14 08:29:11 浏览: 91
python 实现给定一个字符串,找出不含有重复字符的最长子串的长度
5星 · 资源好评率100%
好的,我了解了你的要求,以下是我编写的Python代码:
```python
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
left, right = 0, 0
max_len = 0
char_set = set()
while right < len(s):
if s[right] not in char_set:
char_set.add(s[right])
right += 1
max_len = max(max_len, right - left)
else:
char_set.remove(s[left])
left += 1
return max_len
```
使用双指针和哈希集合的思路,时间复杂度为 O(n),空间复杂度为 O(min(m,n)),其中 m 是字符集的大小,n 是字符串的长度。
阅读全文