2013-01-07 46 views
1

假设我有一个序列和一个列表的列表:如何顺序标记列表列表?

[ “A” “B” “C” “d”, “E”] [[:1:2] [:3:4:5] ]

我想使用该序列来标记列表的列表的每个元素:

[[ “A”:1 “B”:2] [ “C”:3 “d” :4“E”:5]]

我的算法应该是什么?


编辑:那么最好的答案堆栈溢出,可以给予进行复制,然后变异它,只有当数据是一个特定形状的作品?

我已经接受了这个答案,因为它是正确的,也是唯一的答案,但是我们当然可以做得更好?

回答

1

应该相当简单。在整个序列中移动索引时迭代您的子列表元素。如果列表比序列更长,则可以使用模数将移动索引设置为序列开始时的结尾。

int index = 0 

for(sublist in list) { 
    for(element in sublist) { 
     element.label = sequence[index++] 
     index = index modulo length_of(sequence) 
    } 
} 

如果你的子列表也可以有子列表,那么你可能需要做一个递归方法。