加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何编写一个ruby方法,该方法返回两个数组但位于不同位置的项目

发布时间:2020-12-17 01:56:58 所属栏目:百科 来源:网络整理
导读:我正在尝试用 Ruby编写游戏Mastermind的一个版本.为此,我需要编写一个方法,该方法将返回两个不同数组共有多少个元素的计数,但这些元素位于不同的位置.我已经有一个方法可以返回在同一索引处正确的项目数. 例如: comparing ["red","green","red","orange"] t
我正在尝试用 Ruby编写游戏Mastermind的一个版本.为此,我需要编写一个方法,该方法将返回两个不同数组共有多少个元素的计数,但这些元素位于不同的位置.我已经有一个方法可以返回在同一索引处正确的项目数.

例如:

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

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

comparing ["green","blue"] to ["green","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,:blue,:blue]     # => 1
f [:red,:orange,[:orange,:red]  # => 4
f [:green,:blue],[:green,: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读