1 问题描述
给定一个字符串,统计其中没有重复字符的最长子串的长度。
2 代码实现
这题如果想到用哈希表来实现就不算太难,下面的代码放出的是我独立思考之后的结果,看了官方题解之后了解到这种方法的名称是滑动窗口,想想非常贴切。
具体来说就是,我们用一个哈希表来存储字符串中出现的字符,以字符为key,存储value的是该字符在当前字符串中的最新下标。
用l_
来存储每个无重复字串的长度,如果新加入的字符之前从未见过,那就令l_+1
,否则,判断这个字符前一次出现的位置,如果是在滑动窗口之前,那不需要进行额外操作,不然就要修改当前的滑动窗口范围,这里都是通过head
来实现,滑动窗口的尾部始终是最新遍历到的字符。
class Solution:
def lengthOfLongestSubstring(self, s: str