给定一个长度为 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
}