一个整数 num
的 k 美丽值定义为 num
中符合以下条件的 子字符串 数目:
- 子字符串长度为
k
。 - 子字符串能整除
num
。
给你整数 num
和 k
,请你返回 num
的 k 美丽值。
注意:
- 允许有 前缀 0 。
0
不能整除任何值。
一个 子字符串 是一个字符串里的连续一段字符序列。
示例 1:
输入:num = 240, k = 2 输出:2 解释:以下是 num 里长度为 k 的子字符串: - "240" 中的 "24" :24 能整除 240 。 - "240" 中的 "40" :40 能整除 240 。 所以,k 美丽值为 2 。
示例 2:
输入:num = 430043, k = 2 输出:2 解释:以下是 num 里长度为 k 的子字符串: - "430043" 中的 "43" :43 能整除 430043 。 - "430043" 中的 "30" :30 不能整除 430043 。 - "430043" 中的 "00" :0 不能整除 430043 。 - "430043" 中的 "04" :4 不能整除 430043 。 - "430043" 中的 "43" :43 能整除 430043 。 所以,k 美丽值为 2 。
class Solution {
public:int divisorSubstrings(int num, int k) {int ans=0;string s= to_string(num);for (int i = 0; i <=s.length()-k; ++i) {int tem= stoi(s.substr(i,k));if(tem&&num%tem==0){ans++;}}
return ans;}
};
-
to_string(int num)
: 这个函数将整数num
转换为其字符串表示形式。它用于将输入整数num
转换为字符串s
。 -
s.length()
: 这个函数返回字符串s
的长度。它用于确定字符串s
的长度,以便在其子串中进行迭代。 -
s.substr(i, k)
: 这个函数从字符串s
中提取一个子串,从索引i
开始,长度为k
。它用于从原始字符串s
中提取长度为k
的子串。 -
stoi(string str)
: 这个函数将字符串str
转换为其整数表示形式。它用于将从原始字符串s
中提取的子串再转换为整数,以便进行进一步处理。