3
我需要将多个列表与常用元素合并为一个。我应该在清单内做到这一点。在Haskell中合并类似的列表清单
例如:
INPUT: [[1,2,3],[5,6],[8,3,11],[4,9,1]]
MY输出: [[1,2,3,8,3,11,1,2,3,4,9,1],[]]
需要的输出: [[1,2,3 ,8,11,9],[5,6]]
另一个例子:
INPUT: [[4],[0],[7,10],[6],[6]]
MY输出: [[6,6],[]]
OUTPUT: [[4],[0],[7,10],[6]]
我的代码:
mergeAllLists :: [[Integer]] -> [[Integer]]
mergeAllLists (x:[]) = [x]
mergeAllLists (x:[]:y) = [x]
mergeAllLists (x:y:[]:_) = mergeOneToAll_ x [y]
mergeAllLists (x:xs) = mergeAllLists (mergeOneToAll x xs)
mergeOneToAll :: [Integer] -> [[Integer]] -> [[Integer]]
mergeOneToAll _ [] = [[]]
mergeOneToAll list (y:list_of_list) = (mergeLists list y) : (mergeOneToAll list list_of_list)
列表中是否包含数字的两次出现?如果它们是重要的?我的意思是:如果输入是[[1,1,2],[2,3]],你会介意结果是[[1,2,3]]而不是'[[1,1 1,2,3]]'? – Bakuriu
是的,我可以删除重复以后 – dandycomp