给定一个数字字符串,按它们出现的顺序输出该字符串中所有长度为 n 的连续子串。
例如,字符串“49142”包含以下 3 位数的序列:
以及以下 4 位数的序列:
如果你从一个 5 位数的字符串里要一个 6 位数的序列,那不管得到什么,都是你自找的。
注意,这些序列只要求在输入中占据_相邻的位置_,数字本身不必_在数值上连续_。
要完成这个练习,你需要实现 slices 函数:它接收一段文本,返回指定长度的数字子序列。
如果这是你第一次做这个练习,建议你先沿用给出的签名:
slices :: Int -> String -> [[Int]]
之后,你可以回过头来重新看看这个问题,试着用一用其他的数据类型和库:
ByteString,来自 bytestring 包。Sequence,来自 containers 包。Text,来自 text 包。Vector,来自 vector 包。测试套件特意设计成能接受几乎所有合理的类型签名,所以我们鼓励你找出自己认为最好的那一种。