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

Posted lee_xiumei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把指定的字符串翻译成 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。的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Apache Pig Latin 中将命令拆分为多行吗?

C++ 需要一些关于 Pig Latin 字符串的建议

在 Pig Latin 中使用 FOREACH 阅读汽车时遇到问题

Pig Latin 中不区分大小写的搜索

Pig Latin 中的 AVG() 函数问题

使用 Pig Latin 计算唯一值的出现次数