Description
You are given a string sentence that consist of words separated by spaces. Each word consists of lowercase and uppercase letters only.
We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig Latin.) The rules of Goat Latin are as follows:
- If a word begins with a vowel (
'a','e','i','o', or'u'), append"ma"to the end of the word.<ul> <li>For example, the word <code>"apple"</code> becomes <code>"applema"</code>.</li> </ul> </li> <li>If a word begins with a consonant (i.e., not a vowel), remove the first letter and append it to the end, then add <code>"ma"</code>. <ul> <li>For example, the word <code>"goat"</code> becomes <code>"oatgma"</code>.</li> </ul> </li> <li>Add one letter <code>'a'</code> to the end of each word per its word index in the sentence, starting with <code>1</code>. <ul> <li>For example, the first word gets <code>"a"</code> added to the end, the second word gets <code>"aa"</code> added to the end, and so on.</li> </ul> </li>
Return the final sentence representing the conversion from sentence to Goat Latin.
Example 1:
Input: sentence = "I speak Goat Latin" Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
Example 2:
Input: sentence = "The quick brown fox jumped over the lazy dog" Output: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
Constraints:
1 <= sentence.length <= 150sentenceconsists of English letters and spaces.sentencehas no leading or trailing spaces.- All the words in
sentenceare separated by a single space.
Solutions
Solution 1
PythonJavaTypeScriptRust
class Solution: def toGoatLatin(self, sentence: str) -> str: ans = [] for i, word in enumerate(sentence.split()): if word.lower()[0] not in ['a', 'e', 'i', 'o', 'u']: word = word[1:] + word[0] word += 'ma' word += 'a' * (i + 1) ans.append(word) return ' '.join(ans)(code-box)
