No.4 寻找两个有序数组的中位数

题目:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

示例
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

s = "cbabcb"
ans = 0
str_dict = {}
i, j = 0, 0
while i<=j and j<len(s):
    if s[j] in str_dict:
        i = max(str_dict[s[j]], i)  #i之前所存下的数会在后面出现,滑动窗口会跳过一些元素,该元素还在dict中
    ans = max(j - i + 1, ans)
    str_dict[s[j]] = j+1
    print(i, j, ans, str_dict)
    j += 1

i需要取max,即i只在当前窗口内取值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容