输入是一个螺旋矩阵,输出应该是一个数字的字符串,显然是递增的。
def spiral(x: List[List[Int]]): Unit = x match {
case List() =>
println()
case head :: tail =>
print(head.mkString(" ") + " ")
spiral(tail.transpose.reverse)
}
val matrix = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
spiral(matrix)
我想在Scala中获得最短的解决方案,尽管我很难以比上面更短的方式编写它。
有没有人有任何想法? 提前谢谢。
答案 0 :(得分:1)
不是很短,但我试过
def sp(xs: List[List[Int]]): List[Int] =
xs.collectFirst { case x => x:::sp(xs.tail.transpose.reverse) }.getOrElse(Nil)