【Leetcode 每日一题】2269. 找到一个数字的 K 漂亮值

莱莱  金牌会员 | 2025-3-20 19:04:51 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 988|帖子 988|积分 2964

问题配景

一个整数                                    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当成数字也可以做,从低位到高位用模运算和除法不停地获取当前的数字就可以了。
具体实现

  1. class Solution {
  2.     public int divisorSubstrings(int num, int k) {
  3.         String str = String.valueOf(num);
  4.         int res = 0;
  5.         for (int i = 0; i + k <= str.length(); i++) {
  6.             int cur = Integer.parseInt(str.substring(i, i + k));
  7.             if (cur != 0 && num % cur == 0) {
  8.                 res++;
  9.             }
  10.         }
  11.         return res;
  12.     }
  13. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表