如何编写一个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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |