题目:
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
解法:
func lengthOfLongestSubstring(s string) int {
maxLength := 0
m := make(map[byte]int)
i := 0
for j := 0; j < len(s); j++ {
lasIndex, ok := m[s[j]]
if ok {
if lasIndex + 1 > i { // 注意要加这个条件,因为lasIndex + 1可能小于i
i = lasIndex + 1
}
}
m[s[j]] = j
if maxLength < j - i + 1 {
maxLength = j - i + 1
}
}
return maxLength
}