zoukankan      html  css  js  c++  java
  • freeCodeCamping上javascript基本算法题Basic Algorithm

    一:翻转字符串

      function reverseString(str){

        var arr=str.split("");//字符串转换成数组

        arr.reverse();//翻转数组

        return arr.join("")//翻转后数组转换诚字符串

      }

    二、计算一个整数的阶乘

      function factorialize(num){

        var  result=1;

        for(var i=1;i<=num;i++){

          result*=num

        }

      return result;

      }

    三、检查回文字符串

      function palindrome(str){

        newStr=str.toLowerCase().replace(/[W_]/g/,"");//先把字符串小写,然后用“”替换调字符串中的标点符号及下划线

        var arr=newStr.split("");//字符串转数组

        arr.reverse();//翻转数组

        var str=arr.join("");//翻转后的数组转字符串

        if(str===newStr){

          return true;

        }else{

          return false;

        }

      }

     四、找出一句话中最长的单词。并返回它的长度

      function findLongestWord(str){

        var arr=str.split(" ");//字符串转换成数组

        var list=[];//定义一个数组,接收每个单词的长度

        for(var i=0;i<arr.length;i++){

          list.push(arr[i].length);//循环数组,把每个单词的长度添加到空数组中

        }

        list.sort(function(a,b){//对list进行排序,从小到大

          return a-b;

        });

        str=list[list.length-1];

        return str;

    }  

    五、过滤一个数组中的假值false,null,0,"",undefined,NAN

      function bouncer(arr){

      function isBe(element){//过滤函数

        return Boolean(element)===true;

      }

       return arr.filter(isBe);

      }

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

      把一个英文单词的第一个辅音或辅音丛移到词尾(元音字母(aeiou)之前的字母全部后移),然后加上后缀 "ay"。

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

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

      translate("glove");

     七、从传递进来的字母序列中找到缺失的字母并返回它。如果所有字母都在序列中,返回 undefined。

    function fearNotLetter(str) {
      arr=[];
      for(var i=0;i<str.length;i++){
        num=str.charCodeAt(i);//字符转数字
        arr.push(num);
      }
      for(var j=0;j<arr.length-1;j++){
        if(arr[j+1]-arr[j]!==1){
          numLose=arr[j]+1;
          return String.fromCharCode(numLose);//数字转字符串
        }
      }
      return undefined;
    }

    fearNotLetter("abce");

     八、检查一个值是否是基本布尔类型,并返回 true 或 false。基本布尔类型即 true 和 false。

     

    function boo(bool) {

      if(bool===true||bool===false){
        return true;
      }
        return false;
      }

    boo(null);

     九、写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。

     

    function unite(arr1, arr2, arr3) {
      l=arguments.length;
      arr=[];
      temp=[];

      //先把传入的参数全部合并成一个数组。
      for(var i=0;i<l;i++){
        arr=arr.concat(arguments[i]);
      }

      //合并后的数组,去除重复元素,自留一个。思路:定义一个空数组,把原数组中的元素不断加入空数组中,如果元素已经存在,就不在添加。
      for(var j=0;j<arr.length;j++){
        if(temp.indexOf(arr[j])==-1){
          temp.push(arr[j]);
        }
      }
      return temp;
    }

    unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);

     十、将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。

     

    function spinalCase(str) {
      // "It's such a fine line between stupid, and clever."
      // --David St. Hubbins
      str=str.replace(/([A-Z]+)/g,' $1');//在大写字母前加空格
      str=str.replace(/s+/g,'-');//用-代替空格
      str=str.replace(/_+/g,"");//去除下划线_
      arr=str.split("-");
      if(arr[0]==""){
        arr.shift();
      }
      for(var i=0;i<arr.length;i++){
        arr[i]=arr[i][0].toLowerCase()+arr[i].substr(1);
      }
      return arr.join('-');
      }

    spinalCase('The_Andy_Griffith_Show');    " thisIsSpinalTap"

  • 相关阅读:
    Dockerfile构建
    ElasticSearch学习之集成客户端
    区块链学习之Hyperledger Fabric开发环境搭建(Go+Docker+Fabric)
    区块链学习之什么是区块链(基础入门)
    python学习之多版本管理及Python安装/卸载遇到的坑(MAC版)
    ElasticSearch学习之基本原理概述
    ElasticSearch学习之基本概念及单机/集群部署
    Kafka学习之Kafka选举机制简述
    Kafka学习之内核原理剖析
    通过idea将java项目发布到harbor仓库
  • 原文地址:https://www.cnblogs.com/daacheng/p/7843789.html
Copyright © 2011-2022 走看看