FCC_Intermediate Algorithm Scripting_Pig Latin

1.任务及要求

Pig Latin 


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

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

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

如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程、编写你自己的代码。

2.我的解法

// 百度一大堆先:
// 元音字母:a、e、i、o、u
// 其余为辅音字母
// 辅音丛:单词前几个连续辅音字母,到第一个元音字母为止

// 思路梳理:
// 1,数组存储元音字母
// 2,按字母分割存储
// 2,匹配辅音,到第一个元音字母为止
// 从字符串第一个字母判断是否存在于元音数组,找到则返回索引,并结束循环;
// 3,拼接字符串:如果索引为0,则直接在字符串后面添加‘way’,
// 如果不为0,则将索引前的字符移动到索引后字符之后,添加‘ay’

function translate(str) {

  var vowelArr = ['a','e','i','o','u'];
  
  var strArr = str.split('');
  
  var strLength = strArr.length;
  
  var firstVow = 0;
  
  for(var i =0; i < strLength;i ++) {
    
    if(vowelArr.indexOf(strArr[i]) > -1) {
      firstVow = i;
      break;
    }
    
  }
  
  if(firstVow === 0) {
    str += 'way';
  } else {
    str = str.substr(firstVow) + str.substr(0,firstVow) + 'ay';
  }
  
  
  return str;
}

translate("consonant");

//简书例子:https://www.jianshu.com/p/9cfce14e5cb7

// CSDN 例子:使用正则表达式
/*
 function translate(str) {
 
        if (/^[aeiou]/.test(str)) { //元音开始
            str = str + "way";
        } else { //辅音开始
            var index = /[aeiou]/.exec(str).index;
            str = str.slice(index) + str.substring(0, index) + "ay";
        }
        return str;
    }
 
    translate("consonant");
————————————————
版权声明:本文为CSDN博主「kuangyexiwan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kuangyexiwan/article/details/80178420
*/

猜你喜欢

转载自www.cnblogs.com/yoursatan/p/12402101.html