gpt4 book ai didi

arrays - pig 拉丁文句

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:38 24 4
gpt4 key购买 nike

我正在尝试创建一种方法,它将字符串句子作为参数,并将该句子翻译成 pig Latin。我目前正在尝试用一种方法来完成这一切。

我可以轻松地为一个词做到这一点:

def pig_latin_word(word)
vowels = %w(a e i o u)
word_array = word.split('')
if vowels.include?(word_array[0])
word_array.join('')
else
until vowels.include?(word_array[0])
word_array += word_array.shift(1)
end
word = word_array.join('')
"#{word}ay"
end
end

我现在想做同样的事情,但是让方法接受一个句子。这是我目前所拥有的:

def pig_latin_sentence(sentence)
vowels = %w(a e i o u)
sentence_array = sentence.split.each_slice(1).map{|a| a.join('')}
sentence_array.each do |word|
if vowels.include?(word[0])
sentence_array.join(' ')
else
until vowels.include?(word[0])
word_array = word.split('')
word_array += word_array.shift(1)
end
p sentence_array.join('ay ')
end
end
end

我最初是想把句子切下来,这样我就把每个词都分开了。然后我可以遍历一个数组,每个单词都是一个元素。但是,为了执行 .shift 方法,我必须再次拆分每个字符串元素。我怎样才能做到这一点?

另外,有没有人有更简洁的写单字方法的方法?

最佳答案

正如 Dave Newton 所说,让你的 pig_latin_word 处理这些词。如果这些词有问题,你会知道去哪里找;句子也是如此。

sentence.split.each_slice(1).map{|a| a.join('')}

是工作太辛苦的人的代码。

def pig_latin_sentence(sentence)
pig_words = sentence.split.map do |word|
pig_latin_word(word)
end
pig_words.join(" ")
end

关于arrays - pig 拉丁文句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com