0
给定具有奇数个元素的矢量v
,它以0
开头和结尾,我想用它的中心向两个方向扫描时找到的第一个非正元素填充它,如由此代码片段执行:在Scala中填充矢量的两端
val v = Vector(0, 3, -1, 4, 1, 4, 0)
val center = v.length/2
val end0 = v.lastIndexWhere(_ <= 0, center)
val end1 = v.indexWhere (_ <= 0, center)
println(Vector.fill(end0)(v(end0)) ++ v.slice(end0, end1) ++ Vector.fill(v.length-end1)(v(end1)))
其中产生Vector(-1, -1, -1, 4, 1, 4, 0)
。有更简洁的方法来做到这一点吗?使用可变集合来表示v
是可以接受的。