🚩传送门:牛客题目

题目

给你一个字符串 [NC]179. 长度为 K 的无重复字符子串 - 图1,找出所有长度为 [NC]179. 长度为 K 的无重复字符子串 - 图2含重复字符的子串,请你返回全部满足要求的子串的 数目

示例 1:

输入:S = “createfunonyoka”, K = 4 输出:4 解释: 这里有 6 个满足题意的子串,分别是:’eate’,’unon’,’nony’,’onyo’ 。

解题思路:集合判重

利用 set 进行判重,如果 set 中元素个数不等于 [NC]179. 长度为 K 的无重复字符子串 - 图3 说明有重复元素

我的代码

  1. class Solution {
  2. public int numKLenSubstrRepeats(String s, int k) {
  3. HashSet<Character> set = new HashSet<>();
  4. int n=s.length();
  5. int res=0;
  6. for (int i = 0; i <= n-k; i++) {
  7. for (int j = 0; j < k; j++) {
  8. set.add(s.charAt(i+j));
  9. }
  10. // 说明重复
  11. if(set.size()!=k) res++;
  12. set.clear();
  13. }
  14. return res;
  15. }
  16. }