Python程序:查找给定范围内数字的出现次数


假设我们得到了两个正整数 n 和 d,其中 d 是 0 到 9 之间的数字。我们需要确定数字 d 在 1 到 n 之间的整数中出现了多少次。

例如,如果输入为 n = 45,d = 5,则输出为 5。

这些数字包含数字 5:[5, 15, 25, 35, 45]。

为了解决这个问题,我们将遵循以下步骤:

  • 定义一个函数 solve()。它将接收 n 和 d 作为输入。

  • 如果 n < 0,则

    • 返回 0

  • k := floor of (n /10) − 1

  • ans := solve(k, d) * 10 + k + 1

  • 如果 d 等于 0,则

    • ans := ans − 1

  • m := floor of (n / 10) * 10

  • 当 m <= n 时,执行以下操作:

    • ans := ans + m 的字符串表示中 d 的字符串表示出现的次数。

    • m := m + 1

  • 返回 ans

  • 在主函数中,现在调用该函数:

  • value := solve(n,d)

  • print(value)

让我们来看以下实现,以便更好地理解:

示例

 实时演示

class Solution:
   def solve(self, n, d):
      if n < 0:
         return 0
      k = n // 10 − 1
      ans = self.solve(k, d) * 10 + k + 1
      if d == 0:
         ans −= 1
      m = n // 10 * 10
      while m <= n:
         ans += str(m).count(str(d))
         m += 1
      return ans
ob = Solution()
print(ob.solve(45,5))

输入

45, 5

输出

5

更新于: 2020年12月15日

714 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告