山羊拉丁文
给你一个由若干单词组成的句子 sentence ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。 请你将句子转换为 “山羊拉丁文(Goat Latin)”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下: 如果单词以元音开头(‘a’, ‘e’, ‘i’, ‘o’, ‘u’),在单词后添加"ma"。 例如,单词 “apple” 变为 “applema” 。 如果单词以辅音字母开头(即,非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"。 例如,单词 “goat” 变为 “oatgma” 。 根据单词在句子中的索引,在单词最后添加与索引相同数量的字母’a’,索引从 1 开始。 例如,在第一个单词后添加 “a” ,在第二个单词后添加 “aa” ,以此类推。 返回将 sentence 转换为山羊拉丁文后的句子。 来源:力扣(LeetCode)
AC代码class Solution:
def toGoatLatin(self, sentence: str) -> str:
def change(word, idx):
if word[0] in ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']:
return word + 'ma' + 'a' * (idx + 1)
else:
return word[1:] + word[0] + 'ma' + 'a' * (idx + 1)
senlist= sentence.split(' ')
res = ''
for idx, word in enumerate(senlist):
if idx str:
vowels = {"a", "e", "i", "o", "u", "A", "E", "I", "O", "U"}
n = len(sentence)
i, cnt = 0, 1
words = list()
while i
关注
打赏
热门博文
- 【Leetcode】剑指Offer 34:二叉树中和为某一值的路径
- 【Leetcode】剑指Offer 33:二叉搜索树的后序遍历序列
- 【Leetcode】剑指Offer 32-III: 从上到下打印二叉树 III
- 【Leetcode】剑指Offer 32-II: 从上到下打印二叉树 II
- 【Leetcode】剑指Offer 32-I:从上到下打印二叉树
- 【Leetcode】剑指Offer 31:栈的压入、弹出序列
- 【Leetcode】剑指Offer 30:包含min函数的栈
- 【Leetcode】剑指Offer 29:顺时针打印矩阵
- 【Leetcode】剑指Offer 28:对称的二叉树
- 【Leetcode】剑指Offer 27:二叉树的镜像