莱莱 发表于 2025-3-20 19:04:51

【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]
查看完整版本: 【Leetcode 每日一题】2269. 找到一个数字的 K 漂亮值