gpt4 book ai didi

algorithm - 用线性供应流中的值填充嵌套结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:11 26 4
gpt4 key购买 nike

我在解决下一个问题时卡住了:

假设我们有一个数组结构,任何结构,但对于这个例子,让我们使用:

[
[ [1, 2], [3, 4], [5, 6] ],
[ 7, 8, 9, 10 ]
]

为方便起见,我将此结构转换为平面数组,如下所示:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

想象一下,在某些操作之后,我们的数组看起来像这样:

[ 1, 2, 3, 4, 12515, 25125, 12512, 8, 9, 10]

注意:这些值是某些操作的结果,我只想指出它独立于结构或它们的位置。

我想知道的是...给定第一个数组结构,如何将最后一个平面数组转换为与第一个相同的结构?所以它看起来像:

[ 
[ [1, 2], [3, 4] , [12515, 25125] ],
[ 12512, 8, 9, 10]
]

有什么建议吗?我只是将位置硬编码到给定的结构中。但这不是动态的。

最佳答案

只需递归结构,并使用迭代器按顺序生成值:

function fillWithStream(structure, iterator) {
for (var i=0; i<structure.length; i++)
if (Array.isArray(structure[i]))
fillWithStream(structure[i], iterator);
else
structure[i] = getNext(iterator);
}
function getNext(iterator) {
const res = iterator.next();
if (res.done) throw new Error("not enough elements in the iterator");
return res.value;
}

var structure = [
[ [1, 2], [3, 4], [5, 6] ],
[ 7, 8, 9, 10 ]
];
var seq = [1, 2, 3, 4, 12515, 25125, 12512, 8, 9, 10];
fillWithStream(structure, seq[Symbol.iterator]())
console.log(JSON.stringify(structure));

关于algorithm - 用线性供应流中的值填充嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50554603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com