檢查Python中每個數字的頻率是否小於該數字


假設我們有一個數字n,我們必須檢查n的每個數字的出現次數是否小於或等於數字本身。

因此,如果輸入類似於n = 5162569,則輸出將為True,因為數字和頻率為(5, 2),(1, 1),(6, 2)和(9, 1),所有頻率都小於或等於數字值。

為了解決這個問題,我們將遵循以下步驟:

  • 對於i從0到9,執行:
    • temp := n,cnt := 0
    • 當temp不為零時,執行:
      • 如果temp mod 10與i相同,則
        • cnt := cnt + 1
      • 如果cnt > i,則
        • 返回False
      • temp := (temp / 10)的商
  • 返回True

示例

讓我們看看下面的實現,以便更好地理解:

 線上演示

def solve(n):
   for i in range(10):
      temp = n
      cnt = 0
      while temp:
         if temp % 10 == i:
            cnt += 1
         if cnt > i:
            return False
         temp //= 10
   return True
s = 5162569
print(solve(s))

輸入

5162569

輸出

True

更新於:2021年1月18日

103 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告