作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以在Scala中使用stream
算法定义backtracking
?
例如,以下backtracking
算法将打印给定大小的所有“二进制”字符串。
def binaries(s:String,n:Int){
如果(s.size == n)
打印信息
别的 {
二进制文件(s +'0',n)
二进制文件(s +'1',n)
}
}
我相信我可以使用另一种迭代算法来定义给定大小的“二进制”字符串的stream
。但是我想知道是否可以将上面的回溯算法转换为stream
。
最佳答案
这很简单:
def binaries(s: String, n: Int): Stream[String] =
if (s.size == n) Stream(s)
else binaries(s + "0", n) append binaries(s + "1", n)
append
的使用-此方法对于其他集合是非标准的,这是必需的,因为它必须使用其参数名。
关于scala - 如何将回溯算法转换为流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625765/
我是一名优秀的程序员,十分优秀!