2

「A」「B」と「C」のみを含む単一文字列の遅延シーケンスがあるとします。

そこから、すべての「A」と「A」の直後に続く「B」をすべて含む 2 番目のシーケンスを作成したいと思います。

たとえば、入力シーケンス 'C' 'B' 'A' 'B' 'B' 'A' 'A' 'B' 'C' は、シーケンス 'ABB' 'A' 'AB' を生成します。

4

2 に答える 2

-1

これはおそらく最善の解決策ではありませんが、 を使用した作業コードを次に示しますclojure.core/for

(def abc '("C" "B" "A" "B" "B" "A" "A" "B" "C"))
=> #'user/abc
(for [i (range (count abc))
      :let [a (nth abc i)]
      :when (= a "A")]
  (apply str a (for [j (range (inc i) (count abc))
                     :let [b (nth abc j)]
                     :while (= b "B")]
                 b)))
=> ("ABB" "A" "AB")
于 2013-11-09T22:34:27.233 に答える