leetcode题解3:Longest Substring Without Repeating Characters

/ 默认分类 / 没有评论 / 103浏览

题目链接:Longest Substring Without Repeating Characters

func lengthOfLongestSubstring(s string) int {
    var i,j,maxv int = 0, 0, 0
    m := make(map[byte]bool)
    for j<len(s) {
        _,y := m[s[j]]
        if y {
            delete(m,s[i])
            i++
        } else {
            key := s[j]
            m[key] = true
            j++
            if maxv < len(m) {
                maxv = len(m)
            }
        }
    }
    return maxv
}

只扫描一遍,从头开始置两个指针,左边界和右边界,每次尝试移动右边界,如果没有重复,就计算长度;如果有重复,把左边直到重复的都删掉。