在字符串中查找模式的所有索引?

fer*_*k86 1 functional-programming scala

这是我的代码看起来很难看,因为它使用了两个变量.

  def patternMatching(pattern: String, genome: String): List[Int] = {
    assert(pattern.length < genome.length)
    var curr = 0
    var r = List[Int]()
    while (curr != -1) {
      curr = genome.indexOf(pattern, curr)
      if (curr != -1) {
        r ::= curr
        curr += 1
      }
    }
    r.reverse
  }
Run Code Online (Sandbox Code Playgroud)

你怎么用功能的方式写这个?

Yan*_*san 10

这是非常困难的:

0.until(genome.length).filter(genome.startsWith(pattern, _))
Run Code Online (Sandbox Code Playgroud)