通过在 Python 中连接另一个数组的子数组来生成数组的程序
假设我们有一个称为组的二维数组和另一个数组nums。我们必须检查我们是否可以从数组nums中选择n个不相交的子数组,使得第i个子数组等于group[i](0-indexed),如果i>0,则第(i-1)个子数组将出现在之前nums中的第i个子数组。
因此,如果输入类似于groups=[[2,-2,-2],[4,-3,0]]nums=[1,-1,0,2,-2,-2,4,-3,0],那么输出将为真,因为数组group[0]存在于nums的索引3到5中,而group[1]存在于nums的索引6到8。
示例
让我们看看以下实现以获得更好的理解-
def solve(groups, nums):
i = 0
for grp in groups:
for j in range(i, len(nums)):
if nums[j:j+len(grp)] == grp:
i = j + len(grp)
break
else:
return False
return True
groups = [[2,-2,-2],[4,-3,0]]
nums = [1,-1,0,2,-2,-2,4,-3,0]
print(solve(groups, nums))输入
[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]输出结果
True