有谁知道我可以如何确定/确保序言列表中只有一个重复元素?
我正在为考试而学习。
使用 对列表进行排序sort/2
。它会删除重复项,因此如果排序列表正好短了一个,那么你正好有一对。
one_duplicate(L) :-
sort(L, Sorted),
length(L, Len),
length(Sorted, SortedLen),
Len =:= SortedLen + 1.
找到重复的对完全是另一个问题。
one_duplicate(L) :-
sort(L, Sorted),
length(L, Len),
length(Sorted, SortedLen),
Len =:= SortedLen + 1.