无法按组解决字谜?

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"] +[]

以上是关于无法按组解决字谜?的主要内容,如果未能解决你的问题,请参考以下文章

按组中的前 n(最少)项计数和分组

按组迭代回归 ML 模型

按组规范化pyspark数据帧

按组 SQL 运行总计 (Oracle)

ggplot barplot 按组给出百分比

R语言按组聚合求和实战(sum a variable by group):使用aggregate函数按组聚合求和使用tapply函数按组聚合求和按组聚合求和(使用dplyr包)