ruby - 在 Ruby 中比较序列

标签 ruby arrays compare

假设我必须(小型到中型)阵列:

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/

相关文章:

ruby - 我可以使用不在当前文件夹层次结构下的另一个文件夹中的 Stepdefinitions 吗?

arrays - 查找最多具有 k 个奇数元素的不同连续子数组的数量

c - 超越比较 : compare whole function calls or xml blocks

c# - 使用变量的字典查找

ruby-on-rails - 处理 Rails 3.1 应用程序中不存在的路由

ruby-on-rails - rails : Data too long for column

mysql - Rails 应用程序 Controller 缺少不缺少的参数

arrays - 用于循环的 uiimage 数组

c - 自动填充数组

video - 如何比较/显示 ffmpeg 中 2 个视频之间的差异?