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

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


สมมุติว่าเรามีตัวเลข num เราต้องเช็คว่าสมดุลหรือไม่ ตัวเลขจะสมดุลเมื่อความถี่ของตัวเลขทั้งหมดเท่ากันหรือไม่

ดังนั้น หากอินพุตมีค่าเท่ากับ num =562256 ผลลัพธ์จะเป็น True เนื่องจากความถี่ของแต่ละหลักคือ 2

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • number :=แปลง num เป็นสตริง
  • freq :=แผนที่ที่มีความถี่ของตัวเลข
  • freq_values ​​:=สร้างชุดใหม่โดยใช้ค่าความถี่หลักทั้งหมดจากตัวเลข
  • ถ้าขนาดของ freq_values ​​เท่ากับ 1 แล้ว
    • คืนค่า True
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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

from collections import defaultdict

def solve(num):
   number = str(num)
 
   freq = defaultdict(int)
   n = len(number)
 
   for i in range(n):
      freq[int(number[i])] += 1
 
   freq_values = set(freq.values())
 
   if len(freq_values) == 1:
      return True
   return False
   
num = 562256
print(solve(num))

อินพุต

562256

ผลลัพธ์

True