Problem Name: Find the K-Beauty of a Number
Problem Statement
The k-beauty of an integer num is defined as the number of substrings of num when it is read as a string that meet the following conditions:
- It has a length of k.
- It is a divisor of num.
Given integers num and k, return the k-beauty of num.
Notes
- Leading zeros are allowed.
- 0 is not a divisor of any value.
- A substring is a contiguous sequence of characters in a string.
Constraints
- 1 <= num <= 10^9
- 1 <= k <= num.length(taking- numas a string).
Example Inputs and Outputs
- 
Example 1: 
- Input: num = 240, k = 2
- Output: 2
- Explanation: The substrings of length kare:
- "24"from- "240": 24 is a divisor of 240.
- "40"from- "240": 40 is a divisor of 240.
Therefore, the k-beauty is- 2.
 
 
- 
Example 2: 
- Input: num = 430043, k = 2
- Output: 2
- Explanation: The substrings of length kinclude:
- "43": 43 is a divisor of 430043.
- "30": 30 is not a divisor of 430043.
- "00": 0 is not a divisor.
- "04": 4 is not a divisor of 430043.
- "43": 43 is a divisor of 430043.
Thus, the k-beauty is- 2.
 
 
Brute Force Approach
a. Approach
The brute-force approach involves generating all possible substrings of length k and checking if each substring is a divisor of num.
b. Steps
- Convert numto a string.
- Loop through each starting index up to num.length - k.
- For each substring of length k, check if it is non-zero and a divisor ofnum.
- Count each valid divisor.
c. Time & Space Complexity
- Time Complexity: O(n * k), where nis the length ofnumas a string.
- Space Complexity: O(1), for counting valid divisors.
d. Code Snippet
e. Dry Run
- Input: num = 240, k = 2
- Output: 2after evaluating each substring of lengthk.
Efficient Approach (Sliding Window)
a. Approach
The sliding window approach keeps a window of length k on num in string form, moving it one character at a time. Each time, we convert the window substring to an integer and check if it is a divisor.
b. Steps
- Convert numto a string.
- Initialize a sliding window of size k.
- For each window position, convert the substring to an integer and check if it is a divisor of num.
- Count valid divisors and slide the window to the right until the end of the string.
c. Time & Space Complexity
- Time Complexity: O(n), where nis the length ofnumas a string.
- Space Complexity: O(1).
d. Code Snippet
e. Dry Run
- Input: num = 430043, k = 2
- After iterating through each substring, valid divisors include 43twice, resulting in a k-beauty of2.
Complexity Analysis
a. Brute Force Time & Space Complexity
- Time Complexity: O(n * k)
- Space Complexity: O(1)
b. Optimized Time & Space Complexity
- Time Complexity: O(n)
- Space Complexity: O(1)
Conclusion
The brute-force and sliding window approaches are similar in time complexity. However, the sliding window approach is more intuitive and highlights the advantage of fixed-window techniques in substring-based problems, making it a good choice for beginner-friendly optimization.