Arn*_*jar 5 ruby pattern-matching
如果我们有一个数组
array = [1, 1, 0, 0, 2, 3, 0, 0, 0, 3, 3, 3 ]
Run Code Online (Sandbox Code Playgroud)
我们如何识别给定数字的运行(具有相同值的连续数量)?举例:
run_pattern_for(array, 0) -> 2
run_pattern_for(array, 3) -> 1
run_pattern_for(array, 1) -> 1
run_pattern_for(array, 2) -> 0
Run Code Online (Sandbox Code Playgroud)
没有2的运行,因为没有两个连续的显示.有一次运行3,因为只有一个将树作为连续数字显示.
Bro*_*tse 11
尝试:
class Array
def count_runs(element)
chunk {|n| n}.count {|a,b| a == element && b.length > 1}
end
end
a = [1, 1, 0, 0, 2, 3, 0, 0, 0, 3, 3, 3 ]
a.count_runs 0 #=> 2
a.count_runs 3 #=> 1
a.count_runs 1 #=> 1
a.count_runs 2 #=> 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |