繁体   English   中英

使用Scala返回列表中一行的元素

[英]Returning elements of a row in a list using Scala

我需要编写一个将返回特定行的内容的方法(将其索引输入为方法参数)。 我必须使用递归并且没有循环。

到目前为止,我已经尝试过此未完成的代码(并且我不知道如何继续执行):

class Sudoku(val grid: List[List[Int]]) {

   def r(r: Int): Set[Int] = {
   if (grid.isEmpty) Set()
   else 

  }
}

我也不知道Set是如何工作的。 任何帮助将非常感激。 PS:我不是要完整的代码,算法说明就足够了!

这是对问题的字面解释的答案:

class Sudoku(val grid: List[List[Int]]) {
  def row(n: Int): List[Int] =
    if (grid.size > n) grid(n) else Nil
}

List的apply方法,这里应用于值grid ,可以将其编写为grid apply n ,也可以简单地称为grid(n)返回列表的第n个元素。 如果该元素不存在(例如grid(1000000)),它将引发异常,因此我们首先检查列表的大小。

我不知道为什么要返回Set,但是可以对结果简单调用.toSet Set是具有不同元素(每个元素仅出现一次)的集合,不保证排序。

我也不知道您为什么需要递归,所以我认为这个问题是一个更大问题的一部分。

暂无
暂无

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

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