檢查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)的商
- 如果temp mod 10與i相同,則
- 返回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
廣告