gpt4 book ai didi

arrays - 如何编写一个 ruby​​ 方法,该方法返回两个数组中相似但位置不同的项目的计数

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:56 25 4
gpt4 key购买 nike

我正在尝试用 Ruby 编写游戏 Mastermind 的一个版本。为此,我需要编写一个方法,该方法将返回两个不同数组共有但位于不同位置的元素的数量。我已经有一个方法可以返回在同一索引处正确的项目数。

例如:

comparing ["red", "green", "red", "orange"] to ["blue", "red", "blue", "blue"]
#should return 1

comparing ["red", "red", "orange", "orange"] to ["orange", "orange", "red", "red"]
#should return 4

comparing ["green", "green", "orange", "blue"] to ["green", "green", "orange", "red"]
#should return 0

最佳答案

def f a, b
c = [a, b].transpose.inject [] do |m, e|
m << e if e.first != e.last
m
end.transpose
puts c.first.size - (c.last - c.first).size
end

f [:red, :green, :red, :orange], [:blue, :red, :blue, :blue] # => 1
f [:red, :red, :orange, :orange], [:orange, :orange, :red, :red] # => 4
f [:green, :green, :orange, :blue], [:green, :green, :orange, :red] # => 0

# it works with Strings, also

f %w/red green red orange/, %w/blue red blue blue/ # => 1
f %w/red red orange orange/, %w/orange orange red red/ # => 4
f %w/green green orange blue/, %w/green green orange red/ # => 0

关于arrays - 如何编写一个 ruby​​ 方法,该方法返回两个数组中相似但位置不同的项目的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39709329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com