gpt4 book ai didi

string - 使用scala开头的后缀数组

转载 作者:行者123 更新时间:2023-12-04 17:08:48 25 4
gpt4 key购买 nike

今天我正在尝试使用 Scala 创建后缀数组。我能够使用大量代码行来完成它,但后来我听说它可以通过使用压缩和排序只使用几行代码来创建。

我目前的问题是开头。我尝试使用二分搜索和 zipWithIndex 创建以下“树”,但到目前为止我还没有创建任何东西。我什至不知道仅使用一条线是否可行,但我敢打赌它是哈哈。

我想要做的是从“cheesecake”这个词中得到一个Seq:

 Seq((cheesecake, 0),
(heesecake, 1),
(eesecake, 2),
(esecake, 3),
(secake, 4),
(ecake, 5),
(cake, 6),
(ake, 7),
(ke, 8),
(e, 9))

有人能把我推到正确的道路上吗?

最佳答案

生成 String 的所有可能的后缀(或任何其他 scala.collection.TraversableLike )你可以简单地使用 tails 方法:

scala> "cheesecake".tails.toList
res25: List[String] = List(cheesecake, heesecake, eesecake, esecake, secake, ecake, cake, ake, ke, e, "")

如果你需要索引,那么你可以使用 GenIterable.zipWithIndex :
scala> "cheesecake".tails.toList.zipWithIndex
res0: List[(String, Int)] = List((cheesecake,0), (heesecake,1), (eesecake,2), (esecake,3), (secake,4), (ecake,5), (cake,6), (ake,7), (ke,8), (e,9), ("",10))

关于string - 使用scala开头的后缀数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30075017/

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