-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
49 lines (32 loc) · 1.68 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// A sentence S is given, composed of words separated by spaces.Each word consists of lowercase and uppercase letters only.
// We would like to convert the sentence to "Goat Latin"(a made - up language similar to Pig Latin.)
// The rules of Goat Latin are as follows:
// If a word begins with a vowel(a, e, i, o, or u), append "ma" to the end of the word.
// For example, the word 'apple' becomes 'applema'.
// If a word begins with a consonant(i.e.not a vowel), remove the first letter and append it to the end, then add "ma".
// For example, the word "goat" becomes "oatgma".
// Add one letter 'a' to the end of each word per its word index in the sentence, starting with 1.
// For example, the first word gets "a" added to the end, the second word gets "aa" added to the end and so on.
// Return the final sentence representing the conversion from S to Goat Latin.
// Example 1:
// Input: "I speak Goat Latin"
// Output: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
// Example 2:
// Input: "The quick brown fox jumped over the lazy dog"
// Output: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
// Notes:
// S contains only uppercase, lowercase and spaces.Exactly one space between each word.
// 1 <= S.length <= 150.
//Solution
const toGoatLatin = (S) => {
const vowel = ['a', 'e', 'i', 'o', 'u'], splited = S.split(' ');
return splited.map((w, i) => {
const firstLet = w[0].toLocaleLowerCase();
const repeatA = 'a'.repeat(i + 1);
if (vowel.indexOf(firstLet) > -1) {
return w + 'ma' + repeatA
} else {
return w.slice(1) + w[0] + 'ma' + repeatA
}
}).join(' ')
};