Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/ABC-problem/Clojure/abc-problem.clj
Normal file
21
Task/ABC-problem/Clojure/abc-problem.clj
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
(def blocks
|
||||
(-> "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM" (.split " ") vec))
|
||||
|
||||
(defn omit
|
||||
"return bs with (one instance of) b omitted"
|
||||
[bs b]
|
||||
(let [[before after] (split-with #(not= b %) bs)]
|
||||
(concat before (rest after))))
|
||||
|
||||
(defn abc
|
||||
"return lazy sequence of solutions (i.e. block lists)"
|
||||
[blocks [c & cs]]
|
||||
(if (some? c)
|
||||
(for [b blocks :when (some #(= c %) b)
|
||||
bs (abc (omit blocks b) cs)]
|
||||
(cons b bs))
|
||||
[[]]))
|
||||
|
||||
|
||||
(doseq [word ["A" "BARK" "Book" "treat" "COMMON" "SQUAD" "CONFUSE"]]
|
||||
(->> word .toUpperCase (abc blocks) first (printf "%s: %b\n" word)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue