山羊拉丁文

給你一個由若干單詞組成的句子 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, " ")
}

結束!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章