Skip to content
Rain Hu's Workspace
Go back

[LeetCode] 2269. Find the K-Beauty of a Number

Rain Hu
class Solution {
public:
    int divisorSubstrings(int num, int k) {
        int curr = 0;
        string s = to_string(num);
        int res = 0;
        for (int i = 0; i < s.size()-k+1; i++) {
            int div = stoi(s.substr(i, k));
            if (div != 0 && num % div == 0) res++;
        }

        return res;
    }
};
class Solution {
public:
    int divisorSubstrings(int num, int k) {
        int curr = 0;
        string s = to_string(num);
        int res = 0;
        int pk = pow(10, k-1);
        for (int i = 0; i < k; i++) {
            curr = curr * 10 + (s[i] - '0');
        }
        if (curr != 0 && num % curr == 0) res++;
        for (int i = k; i < s.size(); i++) {
            curr = 10 * (curr - (s[i-k] - '0') * pk) + (s[i] - '0');
            if (curr != 0 && num % curr == 0) res++;
        }

        return res;
    }
};

Share this post on:

Previous
[LeetCode] 1984. Minimum Difference Between Highest and Lowest of K Scores
Next
[LeetCode] 766. Toeplitz Matrix