def getProductOfAllOtherElements(numbers):
# Generate prefix products
prefixProducts = [0] * len(numbers)
for i in range(len(numbers)):
if i == 0:
prefixProducts[i] = numbers[i]
else:
prefixProducts[i] = prefixProducts[i - 1] * numbers[i]
# Generate suffix products
suffixProducts = [0] * len(numbers)
numbers.reverse()
for i in range(len(numbers)):
if i == 0:
suffixProducts[i] = numbers[i]
else:
suffixProducts[i] = suffixProducts[i - 1] * numbers[i]
suffixProducts.reverse()
numbers.reverse()
# Generate result from the product of prefixes and suffixes
result = [0] * len(numbers)
for i in range(len(numbers)):
if i == 0:
result[i] = suffixProducts[i + 1]
elif i == len(numbers) - 1:
result[i] = prefixProducts[i - 1]
else:
result[i] = prefixProducts[i - 1] * suffixProducts[i + 1]
return result
def printSeparator(size = 64):
print('-' * size)
def evaluate(input, expectedOutput):
result = getProductOfAllOtherElements(input)
print('Input:', input)
print('ExpectedOutput:', expectedOutput)
print('Result:', result)
print('IsCorrect:', result == expectedOutput)
printSeparator()
evaluate([3, 2, 1], [2, 3, 6])
printSeparator()
evaluate([1, 2, 3, 4, 5], [120, 60, 40, 30, 24])
printSeparator()
To embed this project on your website, copy the following code and paste it into your website's HTML: