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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.