首页 > 代码库 > 把指定的字符串翻译成 pig latin。

把指定的字符串翻译成 pig latin。

freecodecamp上的算法题:

把指定的字符串翻译成 pig latin。

Pig Latin 把一个英文单词的第一个辅音或辅音丛(consonant cluster)移到词尾,然后加上后缀 "ay"。

如果单词以元音开始,你只需要在词尾添加 "way" 就可以了。

代码:

function translate(str) {
var vowel = ["a", "e", "i", "o", "u"];
if (vowel.indexOf(str[0]) != -1) {
return str + "way";
}
while (vowel.indexOf(str[0]) == -1) {
str = str.substr(1) + str.substr(0, 1);
}
return str + "ay";

}

translate("consonant");

 

测试:

translate("california") 应该返回 "aliforniacay"。 
translate("paragraphs") 应该返回 "aragraphspay"。
translate("glove") 应该返回 "oveglay"。
translate("algorithm") 应该返回 "algorithmway"。
translate("eight") 应该返回 "eightway"。
 
思路及疑问: 1. 将元音放在数组中
       2. 检测字符串首字母是否为元音
                  3. 如果是,则直接在字符串末尾加“way”
                  4. 如果不是,则将第一个辅音或辅音丛移到字符串末尾,再加“ay”
为什么用 if-else 不行?即无法辨认辅音丛?

把指定的字符串翻译成 pig latin。