สมมุติว่าเรามีตัวเลข 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