Skip to main content
Back to problems
#1100
Medium Algorithms

Find k length substrings with no repeated characters

Hash Table String Sliding Window
76.5% acceptance
Mar 31, 2026
607
11
Given a string s and an integer k, return the number of substrings in s of length k with no repeated characters.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn num_k_len_substr_no_repeats(s: String, k: i32) -> i32 {
    let k = k as usize;
    let bytes = s.as_bytes();
    if k > 26 || k > bytes.len() {
      return 0;
    }
    let mut count = [0i32; 26];
    let mut duplicates = 0;
    let mut result = 0;
    for i in 0..bytes.len() {
      let c = (bytes[i] - b'a') as usize;
      count[c] += 1;
      if count[c] == 2 {
        duplicates += 1;
      }
      if i >= k {
        let old = (bytes[i - k] - b'a') as usize;
        count[old] -= 1;
        if count[old] == 1 {
          duplicates -= 1;
        }
      }
      if i >= k - 1 && duplicates == 0 {
        result += 1;
      }
    }
    result
  }
}