通过滑动窗口实现,但需要注意是窗口内不能出现重复字符
jsfunc lengthOfLongestSubstring(s string) int {
runes := []rune(s) // 支持 Unicode(中文等)
lastIndex := make(map[rune]int)
left := 0
maxLen := 0
for right, ch := range runes {
if prev, exists := lastIndex[ch]; exists && prev >= left {
left = prev + 1
}
lastIndex[ch] = right
if currLen := right - left + 1; currLen > maxLen {
maxLen = currLen
}
}
return maxLen
}
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!