2013-01-07 43 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) 
    } 
} 

如果你的子列表也可以有子列表,那麼你可能需要做一個遞歸方法。