我正在研究一些可以判断给定字符串是否是有效的de Bruijn序列n
的东西所以我想将每个字符的给定字符串拆分为大小为n的字符串列表
示例:“011001100”order = 3
变为{“011”,“110”,“100”,“001”,“110”,“100”} 现在我可以轻松检查列表中是否包含两个或更多元素之一
我是haskell的新手,我试着自己做点什么,但我不知道从哪里开始。 (如果你有任何其他想法来完成给定的任务,我会对它开放)
回答评论: 我尝试了什么:
import Data.List
chunk :: Int -> [a] -> [[a]]
chunk _ [] = []
chunk n xs = first : chunk n rest where (first, rest) = splitAt n xs
然后我可以通过以下方式获取列表:
print $ transpose $ chunk order sequence