Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีตรวจสอบว่าความถี่ของแต่ละหลักน้อยกว่าหรือเท่ากับค่าหลักนั้นใน Python

ปัญหา

กำหนดตัวเลข n ตรวจสอบว่าความถี่ของแต่ละหลัก (0-9) น้อยกว่าหรือเท่ากับค่าของหลักนั้นเอง

ตัวอย่าง: 5162569 → True (5:2ครั้ง, 1:1, 6:2, 9:1 — ทุกค่าต่ำกว่าหรือเท่าหลักตัวเลข)

แนวทางแก้ปัญหา

  1. ลูปตรวจสอบแต่ละหลัก 0-9
  2. นับความถี่ใน n
  3. หากความถี่ > ค่าหลัก ให้คืน 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