检查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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP