假设我必须(小型到中型)阵列:
tokens = ["aaa", "ccc", "xxx", "bbb", "ccc", "yyy", "zzz"]
template = ["aaa", "bbb", "ccc"]
如何确定 tokens
是否以相同的顺序包含 template
的所有条目?
(请注意,在上面的示例中,应忽略第一个“ccc”,从而由于最后一个“ccc”而导致匹配。)
最佳答案
这适用于您的示例数据。
tokens = ["aaa", "ccc", "xxx", "bbb", "ccc", "yyy", "zzz"]
template = ["aaa", "bbb", "ccc"]
pos = 0
condition_met = true
template.each do |temp|
if (tpos = tokens[pos..-1].index temp) == nil then
break condition_met = false
else
pos = tpos
end
end
puts condition_met
关于ruby - 在 Ruby 中比较序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993848/