小编pet*_*e23的帖子

序列的运行长度编码

所以我试图解决这个问题,这是我想出的代码:

首先我有一个包函数,接收一个列表并将相同的元素分组到一个向量中。

(defn pack [lst]
  (def a [])
  (def vect [])
  (cond 
    (empty? lst)
      lst
  :else
  (loop [i 0]
    (def r (get lst i))
    (def t (get lst (+ i 1)))
    (if (= r t)
        (def vect (conj vect r)) 
    )
    (if (not= r t)
     (and (def vect (conj vect r)) (and (def a (conj a vect)) (def vect [])))
    )
    (if (= i (- (count lst) 1))
       a
    (recur (inc i))
    )
  ))
)
Run Code Online (Sandbox Code Playgroud)

例如,如果我有这个向量:

(def tes '[a a …
Run Code Online (Sandbox Code Playgroud)

clojure

1
推荐指数
1
解决办法
111
查看次数

标签 统计

clojure ×1