题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
func lengthOfLongestSubstring( s string ) int {
// write code here
// 用数组来存放每一个字符出现的次数
// 字符的 ASCII 代表该字符在数组中的位置
m := make([]int, 256)
left , right, res := 0, 0 ,1
for right < len(s) {
m[s[right]]++
// 当字符出现的次数不等与 1 ,左边界向右移,直至移到重复字符后面一位
for m[s[right]] != 1 {
m[s[left]]--
left++
}
if right - left + 1 > res {
res = right - left + 1
}
right++
}
return res
}

