【发布时间】:2012-03-20 00:55:07
【问题描述】:
我已经解决了一个问题,该问题要求您编写一种方法来确定提供的数组中的哪些单词是字谜,并将字谜分组到输出中的子数组中。
我已经使用看似典型的方法解决了这个问题,即通过对单词进行排序并根据它们的排序字符将它们分组到哈希中。
当我最初开始寻找一种方法时,我注意到String#sum 存在,它将每个字符的序数加在一起。
我想尝试找出一些基于使用sum 来确定字谜的方法。例如,“cars”和“scar”是字谜,它们的sum 是 425。
给定%w[cars scar for four creams scream racs] 的输入,预期的输出(我已经使用哈希解决方案得到)是:[[cars, scar, racs],[for],[four],[creams,scream]]。
好像在做这样的事情:
input.each_with_object(Hash.new []) do |word, hash|
hash[word.sum] += [word]
end
是要走的路,它给你一个散列,其中键“425”的值是['cars','racs','scar']。我认为我缺少的是将其转换为预期的输出格式。
【问题讨论】: