給你一個由若干單詞組成的句子 sentence ,單詞間由空格分隔。每個單詞僅由大寫和小寫英文字母組成。
請你將句子轉換爲 “山羊拉丁文(Goat Latin)”(一種類似於 豬拉丁文 - Pig Latin 的虛構語言)。山羊拉丁文的規則如下:
如果單詞以元音開頭('a', 'e', 'i', 'o', 'u'),在單詞後添加"ma"。
例如,單詞 "apple" 變爲 "applema" 。
如果單詞以輔音字母開頭(即,非元音字母),移除第一個字符並將它放到末尾,之後再添加"ma"。
例如,單詞 "goat" 變爲 "oatgma" 。
根據單詞在句子中的索引,在單詞最後添加與索引相同數量的字母'a',索引從 1 開始。
例如,在第一個單詞後添加 "a" ,在第二個單詞後添加 "aa" ,以此類推。
返回將 sentence 轉換爲山羊拉丁文後的句子。
示例 1:
輸入:sentence = "I speak Goat Latin"
輸出:"Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
示例 2:
輸入:sentence = "The quick brown fox jumped over the lazy dog"
輸出:"heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
提示:
1 <= sentence.length <= 150
sentence 由英文字母和空格組成
sentence 不含前導或尾隨空格
sentence 中的所有單詞由單個空格分隔
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/goat-latin
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
func toGoatLatin(sentence string) string { li := strings.Split(sentence, " ") for key, val := range li { if strings.HasPrefix(strings.ToUpper(val), "A") { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val + "ma" + a } else if strings.HasPrefix(strings.ToUpper(val), "E") { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val + "ma" + a } else if strings.HasPrefix(strings.ToUpper(val), "I") { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val + "ma" + a } else if strings.HasPrefix(strings.ToUpper(val), "O") { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val + "ma" + a } else if strings.HasPrefix(strings.ToUpper(val), "U") { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val + "ma" + a } else { a := "" for i := 0; i < key+1; i++ { a += "a" } li[key] = val[1:] + val[0:1] + "ma" + a } } return strings.Join(li, " ") }
結束!