【问题标题】: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

我尝试了两种不同的方法,但似乎都不适合我。

【问题讨论】:

标签: ruby hash rspec group-by anagram


【解决方案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"] +[]
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
  • 2021-02-01
相关资源
最近更新 更多