思路
- 滑动窗口
func lengthOfLongestSubstring(s string) int {
m := make(map[byte]int)
ans := 0
windowStart := 0
i:=0
for ; i<len(s); {
if index, ok := m[s[i]]; !ok || index < windowStart{
m[s[i]] = i
i++
}else{
if i-windowStart > ans {
ans = i-windowStart
}
windowStart = m[s[i]]+1
m[s[i]] = i
i++
}
}
return max(ans,i-windowStart)
}