RosettaCodeData/Task/Balanced-brackets/Clojure/balanced-brackets-1.clj

15 lines
338 B
Clojure
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
(defn gen-brackets [n]
(->> (concat (repeat n \[) (repeat n \]))
shuffle
(apply str ,)))
(defn balanced? [s]
(loop [[first & coll] (seq s)
2026-02-01 16:33:20 -08:00
stack '()]
2023-07-01 11:58:00 -04:00
(if first
(if (= first \[)
2026-02-01 16:33:20 -08:00
(recur coll (conj stack \[))
(when (= (peek stack) \[)
(recur coll (pop stack))))
2023-07-01 11:58:00 -04:00
(zero? (count stack)))))