Kre*_*tur 5 algorithm clojure set
例:
1 1 1 3 3 4 4 5 5 6 L1
1 3 3 4 5 L2
1 1 4 5 6 Res
Run Code Online (Sandbox Code Playgroud)
约束:
(clojure.set/difference) 因为(3)而在这里没有帮助.
(defn diff [s1 s2]
(mapcat
(fn [[x n]] (repeat n x))
(apply merge-with - (map frequencies [s1 s2]))))
Run Code Online (Sandbox Code Playgroud)
例如,给定
(def L1 [1 1 1 3 3 4 4 5 5 6])
(def L2 [1 3 3 4 5 ])
Run Code Online (Sandbox Code Playgroud)
然后
(diff L1 L2)
;(1 1 4 5 6)
Run Code Online (Sandbox Code Playgroud)