Leetcode Note: Go - Goat Latin

Goat Latin - LeetCode
https://leetcode.com/problems/goat-latin/

  • Go 言語で取り組んだメモ

所感

  • string s が渡される
  • この文章を Goat Latin 言語に変換する
    • a, i, u, e, o で始まる単語は語尾に ma を付ける
    • 死因で始まる場合は、最初の文字を削除して ma を追加する
    • 文中の単語インデックス毎に、1文字ずつ a を語尾に付ける
  • 変換した Goat Latin 文字列を string で return する

回答

Simple solution in Golang - LeetCode Discuss
https://leetcode.com/problems/goat-latin/discuss/925998/Simple-solution-in-Golang

func isVowel(s string) bool {
	letter := strings.ToLower(string(s[0]))

	switch letter {
	case "a", "e", "i", "o", "u":
		return true
	}

	return false
}

func toGoatLatin(S string) string {
	words := strings.Split(S, " ")
	solution := ""

	for i, word := range words {
		a := strings.Repeat("a", i+1)
		goatWord := ""

		if isVowel(word) {
			goatWord = word + "ma"
		} else {
			goatWord = word[1:] + string(word[0]) + "ma"
		}

		solution = solution + goatWord + a + " "
	}

	return solution[:len(solution)-1]
}