สมมติมี Array nums ที่มีเฉพาะจำนวนเฉพาะ ต้องตรวจสอบว่าผลคูณของทุกตัวใน nums เป็น Perfect Square หรือไม่
เช่น Input nums = [3,3,7,7] Output True เพราะ 3*3*7*7 = 441 = 21^2
ขั้นตอนแก้:
- สร้าง Map m นับความถี่ของแต่ละตัวใน nums
- ถ้ามี Key ใดที่ความถี่เป็นคี่ Return False
- Return 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))
Input
[3,3,7,7]
Output
True