ปัญหา
กำหนดตัวเลข n ตรวจสอบว่าความถี่ของแต่ละหลัก (0-9) น้อยกว่าหรือเท่ากับค่าของหลักนั้นเอง
ตัวอย่าง: 5162569 → True (5:2ครั้ง, 1:1, 6:2, 9:1 — ทุกค่าต่ำกว่าหรือเท่าหลักตัวเลข)
แนวทางแก้ปัญหา
- ลูปตรวจสอบแต่ละหลัก 0-9
- นับความถี่ใน
n - หากความถี่ > ค่าหลัก ให้คืน
Falseทันที
ตัวอย่างโค้ด
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)) # Trueอินพุต / เอาต์พุต
Input: 5162569 Output: True