我是Ruby新手并试图找出在线测试的问题。问题如下:
anagram是通过重新排列字母而形成的另一个字, 使用所有原始字母一次;例如,管弦乐队 可以重新安排到马车。
编写一个函数,检查两个单词是否是彼此的字谜。
例如,AreAnagrams.are_anagrams?('momdad','dadmom')应该 返回true,因为参数是字谜。
我提出的代码是:
module AreAnagrams
def self.are_anagrams?(string_a, string_b)
## Create @word1 variable to store string_a
@word1 = string_a
## Create @word1_compare variable to store string_a in lower case
@word1_compare = @word1.downcase
## Create @word2_compare variable to store string_b
@word2 = string_b
## Create @word2_compare variable to store string_b in lower case
@word2_compare = @word2.downcase
## Check length of @word1 and @word2 to make sure they are the same length
if @word1.length == @word2.length
=begin
Sort the letters of the @word1 and @word2 variables and compare
them to see if they are anagrams
=end
if @word1_compare.chars.sort.join == @word2_compare.chars.sort.join
puts "#{@word1} and #{@word2} are anagrams!"
else
puts "#{@word1} and #{@word2} are not anagrams!"
end
else
puts "#{@word1} and #{@word2} are not anagrams!"
end
end
end
当我提交代码时,我从测试中得到以下内容:
编译正常,但4个测试用例中有4个失败
示例案例:错误答案
带有独特字母的单词:错误答案
带有重复字母的单词:错误答案
一个词是另一个词的前缀:错误答案
我已经用多个字符串测试了我的代码,它似乎工作得很好。它看起来像是要我检查更具体的实例(特殊字符,带有重复字母的单词等)但是真的需要吗?对不起,如果这是一个愚蠢的问题,我是Ruby新手并且输了。
非常感谢任何帮助!
答案 0 :(得分:2)
我认为此处的问题是您正在显示消息,但未返回预期的true
或false
值。
在每个puts
之后,请包含相应的答案。这样你的方法将返回一些有用的东西。现在我假设它nil
适用于所有情况,因为puts
返回的是什么。