给你一个字符串 S,找出所有长度为 K 且不含重复字符的子串,请你返回全部满足要求的子串的 数目。
示例 1: 输入:S = "havefunonleetcode", K = 5 输出:6 解释: 这里有 6 个满足题意的子串,分别是: 'havef','avefu','vefun','efuno','etcod','tcode'。 示例 2: 输入:S = "home", K = 5 输出:0 解释: 注意:K 可能会大于 S 的长度。在这种情况下,就无法找到任何长度为 K 的子串。 提示: 1 <= S.length <= 10^4 S 中的所有字符均为小写英文字母 1 <= K <= 10^4来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-k-length-substrings-with-no-repeated-characters 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
32 ms 8.8 MB
class Solution:#py3 def numKLenSubstrNoRepeats(self, S: str, K: int) -> int: i, j = 0, 0 count = 0 st = set() while j < len(S): while len(st) >= K or S[j] in st: st.remove(S[i]) i += 1 st.add(S[j]) if len(st)==K: count += 1 j += 1 return count64 ms 13.7 MB
我的博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!