| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | --- | 
					
						
							|  |  |  | id: aa7697ea2477d1316795783b | 
					
						
							|  |  |  | title: Pig Latin | 
					
						
							|  |  |  | challengeType: 5 | 
					
						
							| 
									
										
										
										
											2019-07-31 11:32:23 -07:00
										 |  |  | forumTopicId: 16039 | 
					
						
							| 
									
										
										
										
											2021-01-13 03:31:00 +01:00
										 |  |  | dashedName: pig-latin | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --description--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-26 18:38:07 -04:00
										 |  |  | Pig Latin is a way of altering English Words. The rules are as follows: | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | \- If a word begins with a consonant, take the first consonant or consonant cluster, move it to the end of the word, and add `ay` to it. | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | \- If a word begins with a vowel, just add `way` at the end. | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # --instructions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-26 18:38:07 -04:00
										 |  |  | Translate the provided string to Pig Latin. Input strings are guaranteed to be English words in all lowercase. | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --hints--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | `translatePigLatin("california")` should return the string `aliforniacay`. | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('california'), 'aliforniacay'); | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | `translatePigLatin("paragraphs")` should return the string `aragraphspay`. | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('paragraphs'), 'aragraphspay'); | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | `translatePigLatin("glove")` should return the string `oveglay`. | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | assert.deepEqual(translatePigLatin('glove'), 'oveglay'); | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | `translatePigLatin("algorithm")` should return the string `algorithmway`. | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('algorithm'), 'algorithmway'); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | `translatePigLatin("eight")` should return the string `eightway`. | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('eight'), 'eightway'); | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | Should handle words where the first vowel comes in the middle of the word.  `translatePigLatin("schwartz")` should return the string `artzschway`. | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('schwartz'), 'artzschway'); | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-02 16:12:12 -08:00
										 |  |  | Should handle words without vowels. `translatePigLatin("rhythm")` should return the string `rhythmay`. | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert.deepEqual(translatePigLatin('rhythm'), 'rhythmay'); | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --seed--
 | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function translatePigLatin(str) { | 
					
						
							|  |  |  |   return str; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | translatePigLatin("consonant"); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --solutions--
 | 
					
						
							| 
									
										
										
										
											2018-10-04 14:37:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function translatePigLatin(str) { | 
					
						
							|  |  |  |   if (isVowel(str.charAt(0))) return str + "way"; | 
					
						
							|  |  |  |   var front = []; | 
					
						
							|  |  |  |   str = str.split(''); | 
					
						
							|  |  |  |   while (str.length && !isVowel(str[0])) { | 
					
						
							|  |  |  |     front.push(str.shift()); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return [].concat(str, front).join('') + 'ay'; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function isVowel(c) { | 
					
						
							|  |  |  |   return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ``` |