題目:給定一個(gè)字符串斗塘,請(qǐng)你找出其中不含有重復(fù)字符的最長(zhǎng)子串的長(zhǎng)度外冀。
示例
輸入: "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 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之前所存下的數(shù)會(huì)在后面出現(xiàn)梧喷,滑動(dòng)窗口會(huì)跳過一些元素,該元素還在dict中
ans = max(j - i + 1, ans)
str_dict[s[j]] = j+1
print(i, j, ans, str_dict)
j += 1
i需要取max拉背,即i只在當(dāng)前窗口內(nèi)取值