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。的更多相关文章

  1. 用户输入内容转换成Pig Latin形式。

    //(单词的第一个元音字母之前的一道单词后面,以"ay"结尾,英语单词首字母为元音字母或者没有元音字母的以“ay”为后缀.)package toPigLatin; import j ...

  2. 随笔 JS 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里

    JS /* * 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里 * @id 要插入到DOM元素的ID * * 输入值为图片URL 字符串 * */ function addImages(i ...

  3. js 字符串分割成字符串数组 遍历数组插入指定DOM里 原生JS效果

    使用的TP3.2 JS字符串分割成字符串数组 var images='{$content.pictureurl} ' ;结构是这样 attachment/picture/uploadify/20141 ...

  4. SQL函数:用于将小写的数值翻译成大写的字符串

    --功能:  用于将小写的数值翻译成大写的字符串(支持到分,即小数点后两位)       --入口参数:@decNum------数字型变量    --返回:字符串    --举例:select db ...

  5. 【Java】 剑指offer(46) 把数字翻译成字符串

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成" ...

  6. 《剑指offer》第四十六题(把数字翻译成字符串)

    // 面试题46:把数字翻译成字符串 // 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻 // 译成"b",……,11翻译成&qu ...

  7. [剑指Offer]46-把数字翻译成字符串(递归思想,循环实现)

    题意 '0'到'25'翻译成'a'到'z',故一个字符串可以有多种翻译方式,如12258有五种翻译方式. 给定字符串,输出有多少种翻译方式 解题思路 递归思想 计f(i)为以第i个字符开始到原字符串结 ...

  8. 【Offer】[46] 【把数字翻译成字符串】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串: 0翻译成"a",1翻译成"b",..... 1 ...

  9. 把数字翻译成字符串 --剑指offer 46题

    # 给一个字符串,按如下规则把它翻译成字符串:1翻译成a,2翻译成b,...25翻译成z:一个数可以有多种翻译方式,比如122可以翻译成abb和kb还可以翻译成aw即3种翻译方式.计算一个数字有几种翻 ...

随机推荐

  1. For all entries in

    Today I read about a blog explaining very detailedly on how to correctly use the key words FOR ALL E ...

  2. 河工大第十届ACM省赛随笔

    比赛成果达到了预期目标,不过还是很遗憾没有更进一步,刚到河工大的时候就想吐槽,拥挤的机房,难受的键盘鼠标,还有规定食堂的,饭票.一切都和河大比赛是给我的感觉不一样,再加上热身赛的那天我背着一大包东西, ...

  3. hadoop day 4

    1.自定义的一种数据类型,要在hadoop的各个节点之间传输,应该遵循hadoop的序列化机制 就必须实现hadoop相应的序列化接口Writable 实现的方法包括:write(),readFiel ...

  4. XXS level2

    (1)用level1的方法尝试,发现行不通 (2)查看PHP源代码 <?php ini_set("display_errors", 0); $str = $_GET[&quo ...

  5. django -----分页器组件

    分页器组件 本文目录 1 Django的分页器(paginator)简介 2 应用View层 3 模版层 index.html 4 扩展 回到目录 1 Django的分页器(paginator)简介 ...

  6. 将本地项目上传到git/码云

    idea查看任意项目的远程仓库地址: git remote -v git branch -v git branch -d  分支名          删除本地分支 git branch -D  分支名 ...

  7. MySQL系列-优化之like关键字 创建索引

    原文: https://blog.csdn.net/ufo___/article/details/81164996 MySQL系列-优化之覆盖索引:  https://blog.csdn.net/UF ...

  8. Go Example--数组

    package main import "fmt" func main() { //定义一个数组并完成初始化,初始值为对应的零值 var a [5]int fmt.Println( ...

  9. 【BZOJ1823】【JSOI2010】满汉全席

    差点忘了2-sat…… 原题: 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉 ...

  10. Map接口的使用

    1.Map定义: Collection是孤立存在的,向集合中存储元素是一个一个放,Map中的集合 存储是成对,通过键找到值,键和值是映射关系. 2.注意: Map集合中不能包含重复的键,但是可以包含重 ...