美文网首页
FCC中级算法题solution

FCC中级算法题solution

作者: 董懂同学 | 来源:发表于2017-04-01 10:40 被阅读25次

    1. Sum All Numbers in a Range

    function sumAll(arr) {
      var min,max; 
      if (arr[0]>arr[1]) {
        max = arr[0];
        min = arr[1];
      }else{
        max = arr[1];
        min = arr[0];
      }
      var sum = 0;
      for (var i = min; i <= max ; i++) {
        sum+=i;    
    }
        return sum;
    }
    

    思路:
    1.判断两个数大小,大的赋给max,小的赋给min
    2.for循环,将min设为初始值,max设为循环边界值,求和
    3.返回求和值

    2. Diff Two Arrays

    function diffArray(arr1, arr2) {
      var newArr = arr1.concat(arr2);
      newArr.sort();
      for (var i = 0; i < newArr.length; i++) {
        if (newArr[i]===newArr[i+1]) {
            delete newArr[i];
            delete newArr[i+1];
        }
      }
      return newArr.filter(Boolean);
    }
    

    思路:
    1.将两个数组连接成一个数组
    2.对数组元素进行排序
    3.判断相邻的数是否相同,如果相同,则把这俩数全部删除
    4.过滤所有真值,并将其返回。

    5. Search and Replace

    function myReplace(str, before, after) {
        var beforeFirstLetter = before.substr(0,1); //截取之前字符串的首位
        var newstr;
        var flag =  /[A-Z]/.test(beforeFirstLetter);
        if(!flag){
            newstr = str.replace(before,after);
            return newstr;
            
        }else{
            var afterFirstLetter = after.substr(0,1).toUpperCase();  //将替换单词首字母取出来大写
            var sliced = after.split('').slice(1).join('');  //将除过首字母之外的部分切割出来
            newafter = afterFirstLetter + sliced;  //拼接首字母大写的单词
            newstr = str.replace(before,newafter);
            return newstr;
        }   
    }
    

    思路:
    1.判断要替换的单词首字母是否为大写。
    2.不是的话,直接替换。
    3.是大写的将需要替换的单词首字母变成大写然后替换。

    21.Arguments Optional

    我在这道题上卡的时间比较长,因为理解闭包花费了一些时间,看了好些博客和YouTube上的教程,自己也跟着教程敲了一些代码,理解的差不多重新回来看题,思路清晰了不少。

    相关文章

      网友评论

          本文标题:FCC中级算法题solution

          本文链接:https://www.haomeiwen.com/subject/jdqiottx.html