繁体   English   中英

获取所有子序列的列表

[英]Get a list of all subsequences

我正在寻找与Scala中的subsequences函数等效的函数。 我在scala.collection.Seq中找不到它,也许它是在其他地方定义的。 但是哪里?

我认为这个问题是众所周知的。 例如,给定序列"abc" ,所有子序列的列表为["","a","b","ab","c","ac","bc","abc"]

在Scala中快速而肮脏的实现如下:

(for {ys <- xs.inits.toList; zs <- ys.tails} yield zs).distinct

但是最好使用已经定义的东西,并且效率更高。

您可以使用combinations

(0 to xs.length).toIterator.flatMap(i => xs.combinations(i))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM