12 lines
427 B
Clojure
12 lines
427 B
Clojure
(defn squeeze [s c]
|
|
(let [spans (partition-by #(= c %) s)
|
|
span-out (fn [span]
|
|
(if (= c (first span))
|
|
(str c)
|
|
(apply str span)))]
|
|
(apply str (map span-out spans))))
|
|
|
|
(defn test-squeeze [s c]
|
|
(let [out (squeeze s c)]
|
|
(println (format "Input: <<<%s>>> (len %d)\n" s (count s))
|
|
(format "becomes: <<<%s>>> (len %d)" out (count out)))))
|