How to group a variable-length, repeating sequence in Scala

后端 未结 4 1615
生来不讨喜
生来不讨喜 2020-12-31 22:14

I have a collection of ints that repeat themselves in a pattern:

val repeatingSequence = List(1,2,3,1,2,3,4,1,2,1,2,3,4,5)

I\'d like to sec

4条回答
  •  无人及你
    2020-12-31 23:05

    As well all know, fold can do everything... ;)

      val rs = List(1,2,3,1,2,3,4,1,2,1,2,3,4,5)
      val res = (rs++List(1)).foldLeft((List[List[Int]](),List[Int]()))((acc,e) => acc match {
        case (res,subl) => {
          if (e == 1) ((subl.reverse)::res,1::Nil) else (res, e::subl)
        }
      })
      println(res._1.reverse.tail)
    

    Please regard this as an entry for the obfuscated Scala contest rather than as a real answer.

提交回复
热议问题