824. 山羊拉丁文(JavaScript)

给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。

我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。

山羊拉丁文的规则如下:

  • 如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"
    例如,单词"apple"变为"applema"
  • 如果单词以辅音字母开头(即非元音字母),移除第一个字符并将它放到末尾,之后再添加"ma"
    例如,单词"goat"变为"oatgma"
  • 根据单词在句子中的索引,在单词最后添加与索引相同数量的字母'a',索引从1开始。
    例如,在第一个单词后添加"a",在第二个单词后添加"aa",以此类推。

返回将 S 转换为山羊拉丁文后的句子。

示例 1:

输入: "I speak Goat Latin"
输出: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"

示例 2:

输入: "The quick brown fox jumped over the lazy dog"
输出: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"

说明:

  • S 中仅包含大小写字母和空格。单词间有且仅有一个空格。
  • 1 <= S.length <= 150

思路:

1、将原始字符串按空格分割,形成包含单词的数组words

2、对于words中的每个单词word,对于首字母不同的单词,共同的操作是在末尾添加'ma',并添加当前索引数量的字母'a'。不同的操作是辅音开头的单词先将首字母移到末尾,再添加后续字母。

3、将每个修改后的单词添加进结果数组

4、返回数组以空格拼接起来的字符串。

/**
 * @param {string} S
 * @return {string}
 */
var toGoatLatin = function(S) {
  let words = S.split(' '),
      index = 1,
      result_words = [];
  for (let word of words) {
    switch (word[0].toLowerCase()) {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':
        break;
      default:
        word = word.slice(1) + word[0];
        break;
    }
    word += 'ma' + Array(index + 1).join('a');
    result_words.push(word);
    index ++;
  }
  return result_words.join(' ');
};

 

你可能感兴趣的:(leetcode,简单题,easy,javascript)