题目描述
给你一个整数数组nums,请计算数组的中心位置,数组的中心位置是数组的一个下标,其左侧所有元素相乘的积等于右侧所有元素相乘的积。数组第一个元素的左侧积为1,最后一个元素的右侧积为1。
如果数组有多个中心位置,应该返回最靠近左边的那一个,如果数组不存在中心位置,返回-1。
输入描述
输入只有一行,给出N个正整数用空格分隔:nums = 2 5 3 6 5 6
1 <= nums.length <= 1024
1 <= nums[i] <= 10
输出描述
输出:3
解释:中心位置是3
用例
输入
2 5 3 6 5 6
输出
3
Python代码
nums = list(map(int, input().split()))
left_pro = 1
right_pro = 1
for num in nums:
right_pro *= num
# print(right_pre)
flag = 0
for i in range(len(nums)):
right_pro //= nums[i]
if left_pro == right_pro:
print(i)
flag = 1
exit()
left_pro *= nums[i]
# print(left_pre, right_pre)
if flag == 0:
print(-1)