删除列表中的偶数个重复项

时间:2017-09-06 10:26:37

标签: prolog

我有一个列表列表,我必须删除每个列表中偶数个重复项。

e.g。

input1 : [[1,2,3],[1,4,5]], expected output : [[2,3],[4,5]]
input2 : [[1,2,3],[1,4,5],[1,6]], expected output : [[2,3],[4,5],[1,6]]
input 3 : [[1,2,3],[1,4,5],[1,6],[2,7]], expected output : [[3],[4,5],[1,6],[7]]
input 4 : [[1,2,3,1],[1,4,5]], expected output : [[2,3],[1,4,5]]
input 5 : [[1,2,3,1],[4,5]], expected output : [[2,3],[4,5]]

目前,我的编码如下:

duplicate([],[]).
duplicate([H|T],[[H1]|T2]):-
              \+member(H1,L),
              duplicate(T,[H1|L],T2).
duplicate([H|T],L,T2):-
              member(H,L),
              delete(H1, L, LNew),
              duplicate(T,LNew,T2).

0 个答案:

没有答案