给你一个由小写字母组成的长度为n的字符串 S ,找出所有长度为 k 且包含重复字符的子串,请你返回全部满足要求的子串的数目。
数据范围: ,
进阶: 时间复杂度,空间复杂度
package main import _"fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param k int整型 * @return int整型 */ func numKLenSubstrRepeats( s string , k int ) int { cnt:=map[byte]int{} ans:=0 for i,ch:=range []byte(s){ if i==k{ break } cnt[ch]++ } if len(cnt)<k{ ans++ } for l,r:=0,k;r<len(s);l,r=l+1,r+1{ var key byte key=byte(s[l]) if cnt[key]==1{ delete(cnt,key) }else{ cnt[key]-- } key=byte(s[r]) cnt[key]++ if len(cnt)<k{ ans++ } } return ans }