Java simple clear sliding window beats 100%
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity: O(n)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(n)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```java []\nclass Solution {\n    public int countCompleteSubstrings(String s, int k) {\n        int n = s.length();\n        char[] ca = s.toCharArray();\n        int cnt = 0;\n        for (int len = k; len <= Math.min(n, 26 * k); len += k) {\n            int[] f = new int[26];\n            int l = 0, r = 0;\n            for (; r < n; r++) {\n                if (r > 0 && Math.abs(ca[r] - ca[r - 1]) > 2) {\n                    l = r;\n                    f = new int[26];\n                }\n                f[ca[r] - \'a\']++;\n                if (r - l + 1 == len) {\n                    if (check(f, k)) cnt++;\n                    f[ca[l++] - \'a\']--;\n                }\n            }\n        }\n        return cnt;\n    }\n\n    boolean check(int[] f, int k) {\n        for (int i = 0; i < 26; i++) {\n            if (f[i] != 0 && f[i] != k) return false;\n        }\n        return true;\n    }\n}\n```
['Hash Table', 'String', 'Sliding Window', 'Java']