本文最后更新于296 天前,其中的信息可能已经过时,如有错误请发送邮件到2446865563@qq.com
1.题目基本信息
1.1.题目描述
给你一个由若干单词组成的句子 sentence ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。
请你将句子转换为 “山羊拉丁文(Goat Latin)”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:
-
如果单词以元音开头('a', 'e', 'i', 'o', 'u'),在单词后添加"ma"。
- 例如,单词 "apple" 变为 "applema" 。
-
如果单词以辅音字母开头(即,非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"。
- 例如,单词 "goat" 变为 "oatgma" 。
-
根据单词在句子中的索引,在单词最后添加与索引相同数量的字母'a',索引从 1 开始。
- 例如,在第一个单词后添加 "a" ,在第二个单词后添加 "aa" ,以此类推。
返回将 sentence 转换为山羊拉丁文后的句子。
1.2.题目地址
https://leetcode.cn/problems/goat-latin/description/
2.解题方法
2.1.解题思路
模拟+双指针
3.解题代码
python代码
class Solution:
def toGoatLatin(self, sentence: str) -> str:
# 思路:模拟+双指针
# 时间复杂度:O(n)
n = len(sentence)
set1 = set(["a", "e", "i", "o", "u"])
l, r = 0, 0
result = ""
index = 0
while r < n:
while r < n and sentence[r] != " ":
r += 1
# print(sentence[l:r])
if sentence[l].lower() in set1:
result += sentence[l:r] + "ma" + "a" * (index + 1) + " "
else:
result += sentence[l + 1:r] + sentence[l] + "ma" + "a" * (index + 1) + " "
r += 1
l = r
index += 1
return result[:-1]
4.执行结果










