【Leetcode 每日一题】2269. 找到一个数字的 K 漂亮值
问题配景一个整数 n u m num num 的 k k k 漂亮值界说为 n u m num num 中符合以下条件的 子字符串 数目:
[*]子字符串长度为 k k k。
[*]子字符串能整除 n u m num num。
给你整数 n u m num num 和 k k k,请你返回 n u m num num 的 k k k 漂亮值。
注意:
[*]允许有 前缀 0 0 0。
[*] 0 0 0 不能整除任何值。
一个 子字符串 是一个字符串里的一连一段字符序列。
数据约束
[*] 1 ≤ n u m ≤ 109 1 \le num \le 109 1≤num≤109
[*] 1 ≤ k ≤ n u m . l e n g t h 1 \le k \le num.length 1≤k≤num.length
解题过程
按题目要求统计有多少字串能够被整除即可,需要注意一下的是完全把 n u m num num当成数字也可以做,从低位到高位用模运算和除法不停地获取当前的数字就可以了。
具体实现
class Solution {
public int divisorSubstrings(int num, int k) {
String str = String.valueOf(num);
int res = 0;
for (int i = 0; i + k <= str.length(); i++) {
int cur = Integer.parseInt(str.substring(i, i + k));
if (cur != 0 && num % cur == 0) {
res++;
}
}
return res;
}
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]