824. 山羊拉丁文

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 class Solution {
 2 public:
 3     string toGoatLatin(string sentence) {
 4         string res;
 5         string word;
 6         unordered_set<char> S = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'};
 7         for(int end = 0, start = 0, cnt = 1; end < sentence.size(); end++) {
 8             if(sentence[end] == ' ' || end == sentence.size() - 1) {
 9                 if(end == sentence.size() - 1) {
10                     end++;
11                 }
12                 // 获取一个单词,默认单词以元音字母开头
13                 word = sentence.substr(start, end - start);
14                 // cout << word << ' ';
15                 start = end + 1;
16                 if(!S.count(word[0])) { // 如果单词以非元音字母开头,修改当前单词
17                     word = word.substr(1) + word[0];
18                 }
19                 word.append("ma");
20                 word.append(cnt, 'a');
21                 cnt++;
22                 res.append(word + ' ');
23             }
24         }
25         res.pop_back();
26         return res;
27     }
28 };
复制代码
posted @   跳动的休止符  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示