list - Scala containsSlice 实现
问题描述
如果我们在 List 中有一个保持顺序的子列表,则在 scala containsSlice 中返回 true。前任。
val sublst = List(1,2,3,4)
val lst = List(1,2,3,4,5,6)
println(lst.containsSlice(sublst)) // true
有没有办法在不使用这种方法的情况下编写这个逻辑?
解决方案
如果可以使用其他库函数,那么这将起作用:
def containsSlice[T](list: List[T], slice: List[T]): Boolean = {
@annotation.tailrec
def loop(l: List[T]): Boolean =
l.nonEmpty && (l.startsWith(slice) || loop(l.tail))
slice.isEmpty || loop(list)
}
推荐阅读
- symfony - 如何让 Symfony 翻译不取值,只翻译标签?
- python - python中的正则表达式在标签之间分割每个文本
- docker - Docker 构建无法加载元数据
- python - 我是 python 新手,我正在尝试制作一个 bmi 计算器
- javascript - 使用 VsCode 更漂亮
- r - 将 txt 文件读入列表,其中每个列表元素由以冒号结尾的行分隔
- python - Python 数字识别(在彩色屏幕上)
- google-analytics - 在 Google Analytics 中找出特定事件类别的会话数量?
- python - 使用 discord.py 创建一个单独的机器人
- sql - postgresql:关系不存在