2013-01-07 5 views
1

가정하자 I은 서열 및리스트의 목록을 가지고목록의 목록에 순차적으로 레이블을 지정하려면 어떻게합니까?

[ "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) 
    } 
} 

하위 목록에 하위 목록이있을 수도있는 경우 재귀 적 방법을 사용해야합니다.

관련 문제