[英]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.