我有一个列表列表,我必须删除每个列表中偶数个重复项。
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).