2269. Find the K-Beauty of a Number

Difficulty:
Related Topics:
Similar Questions:

    Problem

    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:

    Given integers num and k, return **the k-beauty of **num.

    Note:

    A substring is a contiguous sequence of characters in a string.

      Example 1:

    Input: num = 240, k = 2
    Output: 2
    Explanation: The following are the substrings of num of length k:
    - "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 following are the substrings of num of length k:
    - "43" from "430043": 43 is a divisor of 430043.
    - "30" from "430043": 30 is not a divisor of 430043.
    - "00" from "430043": 0 is not a divisor of 430043.
    - "04" from "430043": 4 is not a divisor of 430043.
    - "43" from "430043": 43 is a divisor of 430043.
    Therefore, the k-beauty is 2.
    

      Constraints:

    Solution (Java)

    class Solution {
        public int divisorSubstrings(int num, int k) {
            int i = 0;
            int j = 0;
            int count = 0;
            String s = String.valueOf(num);
            StringBuilder sb = new StringBuilder();
            while (i < s.length() && j < s.length()) {
                sb.append(s.charAt(j) - '0');
                int val = Integer.parseInt(sb.toString());
                if (j - i + 1 == k) {
                    if (val != 0 && num % val == 0) {
                        count++;
                    }
                    sb.deleteCharAt(0);
                    i++;
                    j++;
                } else {
                    j++;
                }
            }
            return count;
        }
    }
    

    Explain:

    nope.

    Complexity: