友情支持
如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜
|
|
有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

公众号的微信号是: jikerizhi。因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。 |
824. 山羊拉丁文
给你一个由若干单词组成的句子 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中的所有单词由单个空格分隔
思路分析
简单模拟题!
-
一刷
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* @author D瓜哥 · https://www.diguage.com
* @since 2026-07-17 22:31:31
*/
public String toGoatLatin(String sentence) {
String[] words = sentence.split(" ");
StringJoiner joiner = new StringJoiner(" ");
Set<Character> set = Set.of('a', 'e', 'i', 'o', 'u');
for (int i = 0; i < words.length; i++) {
String word = words[i];
if (set.contains((char) (word.charAt(0) | 0b10_0000))) {
joiner.add(word + "ma" + "a".repeat(i + 1));
} else {
joiner.add(word.substring(1) + word.charAt(0) + "ma" + "a".repeat(i + 1));
}
}
return joiner.toString();
}

