สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องตรวจสอบว่ามีองค์ประกอบใดบ้างที่มีความถี่ในรายการเท่ากับค่าของมันหรือไม่
ดังนั้น หากอินพุตเป็น [2, 4, 8, 10, 4, 4, 4] เอาต์พุตจะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- res :=แผนที่ใหม่เพื่อเก็บค่าความถี่ที่ชาญฉลาด
- สำหรับแต่ละคู่ของค่าคีย์ (k,v) ใน res ให้ทำ
- ถ้า k เหมือนกับ v แล้ว
- คืนค่า True
- ถ้า k เหมือนกับ v แล้ว
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, nums): res = {} for i in nums: try: res[i] += 1 except: res[i] = 1 for k,v in res.items(): if k == v: return True return False ob = Solution() print(ob.solve([2, 4, 8, 10, 4, 4, 4]))
อินพุต
[2, 4, 8, 10, 4, 4, 4]
ผลลัพธ์
True