无重复字符的字符串

题目链接

解题思路

滑动窗口

go代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

func lengthOfLongestSubstring(s string) int {

str := make(map[byte]int)
n := len(s)

rk, ans := -1, 0
for i := 0; i < n; i++ {

if i != 0 {
delete(str, s[i-1])
}

for rk+1 < n && str[s[rk+1]] == 0 {
str[s[rk+1]]++
rk++
}
if ans < rk+1-i {
ans = rk + 1 - i
}
}
return ans
}