【发布时间】:2017-07-19 16:22:59
【问题描述】:
我想将一个字符串翻译成猪拉丁语。规则如下:
- 有效字词长度为两个或多个字母。
- 如果单词以辅音开头(
'a'、'e'、'i'、'o'或'u'以外的字母),则第一个字母会移到单词的末尾。 - 然后添加
'ay'。
我设法想出了方法:
def translate(word)
if word.size <= 2
word
elsif
word.size > 2
!word.start_with?('a', 'e', 'i', 'o', 'u')
x = word.reverse.chop.reverse
x.insert(-1, word[0])
x << "ay"
else
word << "ay"
end
end
但是,我的测试没有通过某些字符串,
Test Passed: Value == "c"
Test Passed: Value == "pklqfay"
Test Passed: Value == "yykay"
Test Passed: Value == "fqhzcbjay"
Test Passed: Value == "ndnrzzrhgtay"
Test Passed: Value == "dsvjray"
Test Passed: Value == "qnrgdfay"
Test Passed: Value == "npfay"
Test Passed: Value == "ldyuqpewypay"
Test Passed: Value == "arqokudmuxay"
Test Passed: Value == "spvhxay"
Test Passed: Value == "firvmanxay"
Expected: 'aeijezpbay' - Expected: "aeijezpbay", instead got: "eijezpbaay"
Expected: 'etafhuay' - Expected: "etafhuay", instead got: "tafhueay"
这些测试通过:
Test.assert_equals(translate("billy"),"illybay","Expected: 'illybay'")
Test.assert_equals(translate("emily"),"emilyay","Expected: 'emilyay'")
我不知道为什么。
【问题讨论】:
-
我正在使用 codewars,所以它是自动的。
-
你有什么问题?
标签: ruby