Go语言版:
func lengthOfLongestSubstring(s string) int {
lastCurrIndex := make(map[byte]int)
start := 0
maxLength := 0
for i, ch := range []byte(s) {
if LastI, ok := lastCurrIndex[ch]; ok && LastI - start >= 0 {
start = LastI + 1
}
if i + 1 - start > maxLength {
maxLength = i + 1 - start
}
lastCurrIndex[ch] = i
}
return maxLength
}
执行用时 : 24 ms, 在Longest Substring Without Repeating Characters的Go提交中击败了36.93% 的用户
内存消耗 : 3.1 MB, 在Longest Substring Without Repeating Characters的Go提交中击败了44.47% 的用户