数组的中心位置-od-python

数组的中心位置
时间限制:1s空间限制:256MB限定语言:不限

题目描述:
给你一个整数数组nums,请计算数组的中心位置。数组中心位置是数组的一个下标, 其左侧所有元素相乘的积等于右侧所有元素相乘的积。 数组第一个元素的左侧积为1,最后一个元素的右侧积为1如果数组有多个中心位置,应该返回最靠近左边的那一个。如果数组不存在中心位 置,返回-1。

输入描述:
输入只有一行,给出N个正整数用空格分格:nums=2536561 <= nums.length <= 1024 1 <= nums[i] <= 10

输出描述:
输出:3
解释:中心位置是3。
左侧数之积sum=nums[0]nums[1]nums[2]=253=30,
右侧数之积sum=nums[4]nums[5]=56=30,二者相 等。

示例1
输入:
2 5 3 6 5


def max_nums(nums):
    res = [] # 存储符合条件的位置
    for i in range(len(nums)):
        left = 1  #最左侧的积标记为1
        right = 1 #最右侧的积标记为1
        j = i - 1 # 向左
        while j >= 0:
            left *= nums[j]
            j -= 1
        j = i + 1  # 向左
        while j < len(nums):
            right *= nums[j]
            j += 1
        if left == right:
            print(left)
            res.append(i) # 如果有符合的,添加到list res
    res.append(-1) # -1添加到最后
    return res[0]  # 返回list中的第一。如果没有符合的,-1就是第一个
nums = list(map(int, input().split('')))
print(max_nums(nums))

posted on 2024-02-02 21:41  nomorecloudays  阅读(36)  评论(0)    收藏  举报

导航