给定一个长度为 n 的字符串 s ,找出最多包含 k 种不同字符的最长连续子串的长度。
数据范围: , 字符串中仅包含小写英文字母
package main //import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param k int整型 * @return int整型 */ func longestSubstring( s string , k int ) int { max:=0 cnt:=map[byte]int{} for l,r:=0,0;r<len(s);r++{ cnt[s[r]]++ for len(cnt)>k{ if cnt[s[l]]==1{ delete(cnt,s[l]) }else{ cnt[s[l]]-- } l++ } if r-l+1>max{ max=r-l+1 } } return max }