1. 题目描述
2. 思路
创建一个队列
left是左指针,一直指向队列最左边元素
i指向当前要入队列的这一元素
若s[i]在队列中,则右移left指针(相当于滑动队列),直到队列中不包含该元素
3. 代码
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
que = []
left = 0
n = len(s)
max_len = 0
cur_len = 0
for i in range(n):
while s[i] in que:
que.remove(s[left])
left = left + 1
cur_len = cur_len - 1
que.append(s[i])
cur_len = cur_len + 1
if cur_len > max_len:
max_len = cur_len
return max_len
4. 不足的代码部分
- 字符串、列表、元组的各种操作
- .remove()/.append()
5. 参考答案
其他
关注怎么用python表示队列、指针。