当前位置:网站首页>LeetCode简单题之找到一个数字的 K 美丽值

LeetCode简单题之找到一个数字的 K 美丽值

2022-07-07 04:47:00 ·星辰大海

题目

一个整数 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 。

提示:

1 <= num <= 10^9
1 <= k <= num.length (将 num 视为字符串)

来源:力扣(LeetCode)

解题思路

  简单的方法就是,将给定的num转变为字符串然后再进行遍历判断每个子字符串是否符合条件。在这里需要注意对除以0的处理。

class Solution:
    def divisorSubstrings(self, num: int, k: int) -> int:
        n,count=str(num),0
        for i in range(0,len(n)-k+1):
            try:
                if not num%int(n[i:i+k]):
                    count+=1
            except:
                pass
        return count

在这里插入图片描述

原网站

版权声明
本文为[·星辰大海]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_18560985/article/details/125586894