通过在 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