def pig_latin_word(word)
vowels = "aeiou"
if vowels.include?(word[0])
return word + "yay"
end
word.each_char.with_index do |char, i|
if vowels.include?(char)
return word[i..-1] + word[0...i] + "ay"
end
end
end
关于方法,假设代码接受输入“banana”,它将返回“ananabay”。但是,如果我遍历字符串中的每个字符,那么最后一个迭代的元音不是新的pig拉丁语单词创建的元音吗?
换句话说,“香蕉”返回“阿纳纳贝”而不是返回“阿巴纳尼”的原因是什么?
1条答案
按热度按时间eagi6jfj1#
换句话说,“香蕉”返回“阿纳纳贝”而不是返回“阿巴纳尼”的原因是什么?
让我们一次一行地浏览代码:
第一个字母是什么
"banana"
元音?不,所以第一个块不计算。这是对单词的每个字母的迭代
在第一次迭代中,
char = "b"
及i = 0
.是
"b"
元音?不,所以块不计算。下一次迭代。。。现在,
char = "a"
及i = 1
.是
"a"
元音?是的,所以块计算。让我们看看它说了什么: