gpt4 book ai didi

clojure - 获取字符串的所有移动 k 大小的分区

转载 作者:行者123 更新时间:2023-12-02 10:12:46 25 4
gpt4 key购买 nike

我正在尝试获取字符串中所有大小为 k 的“移动”分区。基本上,我想沿着字符串移动一个大小为 k 的窗口并获取该 k 字。

这是一个例子

k:3

输入:ABDEFGH

输出:ABD、EFG、BDE、FGH、DEF

我的想法是沿着输入走,放下一个头并分区,然后从之前的(现在 headless )序列中再次放下一个头,但我不确定到底如何做到这一点......另外,也许有有更好的方法吗?以下是我的想法。

(#(partition k input) (collection of s where head was consecutively dropped))

最佳答案

Clojure 中的字符串可以被视为字符序列,因此您可以直接对它们进行分区。要获取重叠分区的序列,请使用接受大小和步长的版本:

user> (partition 3 1 "abcdef")
((\a \b \c) (\b \c \d) (\c \d \e) (\d \e \f))

要将字符序列放回到字符串中,只需对其应用 str 即可:

user> (apply str '(\a \b \c))
"abc"

把它们放在一起:

user> (map (partial apply str) (partition 3 1 "abcdef"))
("abc" "bcd" "cde" "def")

关于clojure - 获取字符串的所有移动 k 大小的分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com