luoheng
10/6/2019 - 7:31 AM

LengthOfLongestSubstring

func lengthOfLongestSubstring(s string) int {
    if len(s) <= 1 {
        return len(s)
    }
    start, maxL := 0, 0
    hash := [128]int{}
    for end := 0; end < len(s); end++ {
        c := s[end]
        i := int(c)
        mid := hash[i]
        if mid != 0 || mid == 0 && end != 0 && s[0] == c {
            L := end - start
            if L > maxL {
                maxL = L
            }
            if start < mid + 1 {
                start = mid + 1   
            }
        }
        hash[i] = end
    }
    L := len(s) - start
    if L > maxL {
        return L
    }
    return maxL
}