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

ตรวจสอบว่าความถี่ของทุกหลักในตัวเลขเท่ากันหรือไม่ ใน Python


ปัญหา

ตัวเลขถูกเรียกว่า "สมดุล" (Balanced) ถ้าความถี่ของทุกหลักที่ปรากฏเท่ากัน

ตัวอย่าง

num = 562256 → หลัก 5,6,2 แต่ละหลักปรากฏ 2 ครั้ง → True

แนวคิดการแก้ปัญหา

  1. แปลงตัวเลขเป็นสตริง
  2. นับความถี่ของแต่ละหลัก
  3. นำค่าความถี่ทั้งหมดใส่เซต → ถ้าขนาดเซต = 1 → ทุกค่าเท่ากัน

โค้ดตัวอย่าง

from collections import Counter

def solve(num):
    freq = Counter(str(num))
    return len(set(freq.values())) == 1

print(solve(562256))  # True

อินพุต / เอาต์พุต

Input:  562256
Output: True