题解 | #找出最长不重复字符的子串# go + 滑动窗口

找出最长不重复字符的子串

http://www.nowcoder.com/practice/5947ddcc17cb4f09909efa7342780048

go + 滑动窗口

package main

/**
  * 
  * @param s string字符串 
  * @return int整型
*/
func lengthOfLongestSubstring( s string ) int {
    // write code here
    left, right := 0, 0
    window := [256]int{} // 使用数组代替map, map也可以,内存占用可能会更多
    max := 0

    for right < len(s) {
        c := s[right] - 'a'
        window[c]++
        right++

        for window[c] > 1 {
            d := s[left] - 'a'
            left++
            window[d]--
        }

        max = maxs(max, right-left)
    }
    return max
}

func maxs(a, b int) int {
    if a > b {return a}
    return b
}
全部评论

相关推荐

11-17 23:00
南昌大学 Java
这个名称和你无缘:10元一天 0元提成😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务