【发布时间】:2018-02-21 06:32:45
【问题描述】:
我想计算这个数组中"red" 后跟"green" 的次数:
["red", "orange", "green", "red", "yellow", "blue", "green"]
如果是另一种颜色,代码应该忽略它并继续到数组中的下一项。
event_type.each_slice(2) do |red, green|
break unless green
count = count + 1
end
p "The count is #{count}"
第一步:
Look for red
第二步:
IF not last item
Compare with next item on array
ELSE Go to Step 4
第三步:
IF green, count = count + 1
Go to Step 1
ELSE Go to Step 2
第四步:
Print Count
【问题讨论】:
-
如果绿色后跟红色,那么计数是 1?
-
正在寻找红色后绿色的案例?
-
@RAJ 如果红变绿不算1
-
为什么计数是 2?第一个
"red"更改为"orange",第二个更改为"yellow"。既不改变"green",也根据问题“如果它是另一种颜色,代码将忽略它”。 -
你能逐步解释一下算法吗?我看到的是
"red",然后是(或更改为)"orange",然后是"green",依此类推。