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

freecodecamp上的算法题:

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 不行?即无法辨认辅音丛?

时间: 2024-12-21 16:02:39

把指定的字符串翻译成 pig latin。的相关文章

js中使用eval()方法将字符串转换成日期格式、并获取指定时间的日期

1.在js中eval()方法将字符串格式数据转换成日期格式 function getDate(strDate) {         //strDate为需要转换成日期格式的字符串         var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$)/,                 function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');    

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

JS /* * 字符串 分割成字符串数组 并动态添加到指定ID的DOM 里 * @id 要插入到DOM元素的ID * * 输入值为图片URL 字符串 * */ function addImages(id){ /*字符串 变量*/ var images='{$content.pictureurl} ' ; /* console.log( images ) ;*/ /*字符串分割成字符串数组 split*/ var StringArray = images.split(','); /* consol

Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示

本例以将 字符串格式的时间转成指定的时间格式显示. 第一步.定义一个标签处理程序类,需要集成javax.servlet.jsp.tagext.TagSupport,代码如下: import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.T

剑指offer:把数字翻译成字符串

题目要求:给定一个数字,按照如下规则翻译成字符串:0翻译成"a",1翻译成"b"...25翻译成"z".一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi.实现一个函数,用来计算一个数字有多少种不同的翻译方法. # -*- coding: utf-8 -*- # @Time : 2019-07-10 21:13 # @Author : Jayce Wong # @ProjectName : j

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

题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串: 0翻译成"a",1翻译成"b",..... 11翻译成"1",...... 25翻译成"z".一个数字可能有多个翻译.例如,12258有5种不同的翻译,分别是"bccfi""bwfi"."bczi"."mcfi"和"mzi&q

剑指offer——48把数字翻译成字符串

题目要求: 给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”...25翻译成“z”.一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi.实现一个函数,用来计算一个数字有多少种不同的翻译方法. 解题思路: 下面我们从自上而下和自下而上两种角度分析这道题目,以12258为例: 自上而下,从最大的问题开始,递归 : 有很多子问题被多次计算,比如258被翻译成几种这个子问题就被计算了两次. 自然想到可以用动态规划来解决,用f(i

剑指Offer对答如流系列 - 把数字翻译成字符串

面试题46:把数字翻译成字符串 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻译成"b",--,11翻译成"l",--,25翻译成"z".一个数字可能有多个翻译.例如12258有5种不同的翻译,它们分别"bccfi", "bwfi", "bczi", "mcfi" 和"mzi" .请编程实现一个函

《剑指offer》第四十六题:把数字翻译成字符串

// 面试题46:把数字翻译成字符串 // 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻 // 译成"b",……,11翻译成"l",……,25翻译成"z".一个数字可能有多个翻译.例 // 如12258有5种不同的翻译,它们分别是"bccfi"."bwfi"."bczi"."mcfi"和 // "mzi&qu

Pig Latin介绍

背景 当下很多公司都依赖于数据分析来提升产品质量.各种各样的数据库构架(比如并行数据库)正应对了这样的需求,但其缺点是技术人员必须依赖SQL这样远不如其他编程语言方便的语言来处理数据.所以很多人都选择了MapReduce,因为这种模式下只需要设计Map和Reduce两个方程就够了,但是难以重复使用,维护,和优化也是这种模式的缺陷. 在这样的情况下,兼顾两者优点的Pig Latin应运而生. Pig Latin的语言特点 Pig Latin让用户每次只输入一条单独的语句,这条单独的语句只执行一个简