LeetCode in Kotlin

2269. Find the K-Beauty of a Number

Easy

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:

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:

Therefore, the k-beauty is 2.

Constraints:

Solution

class Solution {
    fun divisorSubstrings(num: Int, k: Int): Int {
        var i = 0
        var j = 0
        var count = 0
        val s = num.toString()
        val sb = StringBuilder()
        while (i < s.length && j < s.length) {
            sb.append(s[j].code - '0'.code)
            val `val` = sb.toString().toInt()
            if (j - i + 1 == k) {
                if (`val` != 0 && num % `val` == 0) {
                    count++
                }
                sb.deleteCharAt(0)
                i++
                j++
            } else {
                j++
            }
        }
        return count
    }
}