Sha256: 4bc1affbbfae484c2af3ec8c41a7f7c054c144649552f28d3a8181fd99102d75

Contents?: true

Size: 445 Bytes

Versions: 396

Compression:

Stored size: 445 Bytes

Contents

(ns bracket-push)

(defn valid? [s]
  (let [pairs { \) \( \] \[ \} \{ }
        opening (set (vals pairs))
        closing (set (keys pairs))]
    (loop [stack [] [x & xs :as s] s]
      (cond (empty? s) (empty? stack)
            (opening x) (recur (conj stack x) xs)
            (closing x) (if (= (peek stack) (pairs x))
                          (recur (pop stack) xs)
                          false)
            :else (recur stack xs)))))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.179 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.178 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.177 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.176 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.175 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.174 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.173 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.172 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.171 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.170 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.169 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.167 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.166 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.165 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.164 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.163 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.162 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.161 tracks/clojure/exercises/bracket-push/src/example.clj
trackler-2.2.1.160 tracks/clojure/exercises/bracket-push/src/example.clj