golang 计算最长不重复字串长度

package  main

import "fmt"

func lengthOfNonRepeatingSubStr(s string) int{
    record := make(map[byte]int)
    start := 0
    maxLength := 0

    for i, ch := range []byte(s) {

        lastI, ok := record[ch]
        if ok && lastI >= start {
            start = lastI + 1
        }

        if i - start + 1 > maxLength {
            maxLength = i - start + 1
        }

        record[ch] = i
    }

    return maxLength

}

func main() {
    fmt.Println(
        lengthOfNonRepeatingSubStr("abcabcbb"), // 3
        lengthOfNonRepeatingSubStr("bbbbbbbb"), // 1
        lengthOfNonRepeatingSubStr("pwwkew"), // 3
    )
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
毛仔
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!