สมมติว่าเรามีจำนวนอาร์เรย์ที่มีจำนวนเฉพาะทั้งหมด เราต้องตรวจสอบว่าผลคูณของตัวเลขทั้งหมดที่มีใน nums เป็นกำลังสองสมบูรณ์หรือไม่
ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3,3,7,7] ผลลัพธ์จะเป็น True เนื่องจากผลคูณขององค์ประกอบทั้งหมดใน nums คือ 441 ซึ่งเป็นกำลังสองสมบูรณ์เนื่องจาก 21^2 =441
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- m :=แผนที่ที่มีองค์ประกอบทั้งหมดเป็น num และความถี่
- สำหรับแต่ละคีย์ใน nums ทำ
- ถ้า m[key] เป็นเลขคี่
- คืนค่าเท็จ
- ถ้า m[key] เป็นเลขคี่
- คืนค่า True
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
from collections import defaultdict def solve(nums) : m = defaultdict(int) for key in nums : m[key] += 1 for key in nums : if m[key] % 2 == 1 : return False return True nums = [3,3,7,7] print(solve(nums))
อินพุต
[3,3,7,7]
ผลลัพธ์
True