31 lines
755 B
Python
31 lines
755 B
Python
# HumanEval/128
|
|
# Loki Mode Multi-Agent Solution
|
|
# Attempts: 1
|
|
# Passed: True
|
|
|
|
def prod_signs(arr):
|
|
"""
|
|
You are given an array arr of integers and you need to return
|
|
sum of magnitudes of integers multiplied by product of all signs
|
|
of each number in the array, represented by 1, -1 or 0.
|
|
Note: return None for empty arr.
|
|
|
|
Example:
|
|
>>> prod_signs([1, 2, 2, -4]) == -9
|
|
>>> prod_signs([0, 1]) == 0
|
|
>>> prod_signs([]) == None
|
|
"""
|
|
if not arr:
|
|
return None
|
|
|
|
sign_product = 1
|
|
magnitude_sum = 0
|
|
|
|
for num in arr:
|
|
if num == 0:
|
|
sign_product = 0
|
|
elif num < 0:
|
|
sign_product *= -1
|
|
magnitude_sum += abs(num)
|
|
|
|
return sign_product * magnitude_sum |