无法按组解决字谜?
Posted
技术标签:
【中文标题】无法按组解决字谜?【英文标题】:Not able to solve anagram by group? 【发布时间】:2013-11-29 09:36:04 【问题描述】:我已经阅读了类似问题的所有答案,但我仍然无法让它为我工作。
这是我为句子查找和分组的代码:
"scream cars for four scar creams"
预期的输出是:
OUTPUT: ["cars", "scar"]
def anagram_groups
result = []
here = self.gsub(/\W/," ").downcase.split(" ")
here = self.split(" ")
here.each do |y|
#result == here.group_by|w| w.chars.sort.values
result == here.select |x| x.chars.sort == y.chars.sort
end
result
end
我尝试了两种不同的方法,但似乎都不适合我。
【问题讨论】:
How can I simplify or clean up this anagram method? 的可能重复项 您期望的结果是一个包含单词的数组,但是当有多个单词彼此是字谜时,您期望什么?问题不清楚。 【参考方案1】:你可以这样做:
str = "scream cars for four scar creams"
str.split.group_by|a| a.chars.sort.select|k,v| v.size > 1 .values
# => [["scream", "creams"], ["cars", "scar"]]
【讨论】:
@Arup 你能解释一下代码吗?由于我是 ruby 新手,能否请您告诉我代码中的错误? 另外,我认为您应该知道我正在做作业,我必须使用给我的 rspec 代码检查输出,即使使用您的代码。谢谢 @Rohit 那可能是,你在你的 rspec 代码中做错了什么..但是关于上面的答案,你能告诉我哪一部分没有被理解......我会在这一点上帮助你...让我知道。 @ArupRakshit rspec 代码是教授提供给我的,所以我确信它是正确的。我搜索了一下,现在我理解了你的代码。但我不知道为什么我不能让它为我工作。你能告诉我我之前写的代码是否错误吗?也许我实施错了:如果有帮助,这就是我得到的错误:1)“尖叫汽车四个疤痕霜”的字谜分组Failure/Error: @anagrams.should include(group) expected [] to include ["cars", "scar"] Diff: @@ -1,2 +1,2 @@ -["cars", "scar"] +[]
以上是关于无法按组解决字谜?的主要内容,如果未能解决你的问题,请参考以下文章
R语言按组聚合求和实战(sum a variable by group):使用aggregate函数按组聚合求和使用tapply函数按组聚合求和按组聚合求和(使用dplyr包)