一周算法练习:2019-05-06开始---首篇

不知道大家怎么样的状况,个人目前状态是,迷之纠结
跟着 https://www.jianshu.com/p/a967014dbe6e 这篇博客表露心声,手动+1比心
同感:

图片.png

我是实习期,实习还有3个月就满一年了,早早出来,写代码却时常卡壳,这个就很捉急了,占了时间的先机,却进步缓慢;有时候想把自己脑子撬开看看怎的了,咋就打结了呐,能力也是一直没提升。

总结问题有以下几点:

  1. 思维不够灵活
  2. 知识面狭窄
  3. 遇到不熟悉的代码或者业务就立马懵了(功力不扎实)
  4. 不够理解js代码的灵活应用(羡慕那些分分钟写脚本的大佬)

目标:

一周练会10~15个,先做个短期测试,其他陌生知识也抽空学习扩宽知识面;

遂开始锻炼我的思维,练习算法能不能改善呐拭目以待吧(因为目前我也不知道~~~(>_<)~~~)

图片.png

都是简单的开始,复杂的咱也写不来,试着理解这些并毫无参照的白纸写出来,做到学进去:

算法1:反转一个整数或字符串 支持负数了
注意:如果数值小数位数超过6位,就会转换为科学计数法,整数的多于21位也会转为科学计数法
2019 20:11:04

输入为数字

方法1:

const reverseInteger = function (number) {
    var str = String(number)    //转换为字符串处理 
    // if(str.length>9) return 0   //无符号到亿 有符号到---负千亿
    if(str.charAt(0) == "-"){   //charAt()方法可返回指定位置的(顺序同数组下标)字符
        var str_r = String(number).substr(1,str.length)     //str_r=负号后的字符
        return parseInt("-"+str.split("").reverse().join(""))
    }  
    return parseInt(str.split("").reverse().join(""))
}
reverseInteger(-123)

作者:zz77zz
链接:https://www.jianshu.com/p/a967014dbe6e
来源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

假设我们的环境只能存储得下 32 位的有符号整数,
则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。-2147483648
push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。

方法2:未使用reverse()方法

var reverse = function(x) {
   var resultArr = [];
   var intToStr = x.toString();
   for(var i = intToStr.length-1;i > 0;i--){
       resultArr.push(intToStr[i]);
   }
   if(intToStr[0] == "-"){
       resultArr.unshift("-");
   }
   // 这部分处理32位存储
   // resultArr.push(intToStr[0]);
   // var resultNum = parseInt(resultArr.join(""));
   // if(resultNum <= Math.pow(-2,31) || resultNum >= Math.pow(2,31) - 1 ){
   //     return 0;
   // }
   return resultNum;
};
reverse(-1250)

方案3: 方案一的升级版

var rev=function(x){
var str=parseInt(x.toString().split("").reverse().join("")) //转为字符,分割为数组,反转,
return x<0 ?-str:str
};
rev(-123456789)

作为字符串处理

1.字符串的完全翻转:

var str = "smile at life";
document.write(str.split("").reverse().join("")); //结果为efil ta elims

2.翻转字符串中单词顺序,但单词字母顺序不变:

function reverseStr(param){
    var arr = param.split(" ");
    var newArr = [];
    for(i=0;i

你可能感兴趣的:(一周算法练习:2019-05-06开始---首篇)