思路
滑動窗口,如果在hash表裡找到了當前的字符,重新設置窗口的起點位置
code
func lengthOfLongestSubstring(s string) int {
m := make(map[rune]int)
start, max := -1, 0
for k, v := range s {
if last, ok := m[v]; ok && last > start { //如果發現重複字符
start = last
}
m[v] = k
if k-start > max { //保存最大值
max = k - start
}
}
return max
}
閱讀更多 anakinsun 的文章