美文网首页
一个有意思的js算法题

一个有意思的js算法题

作者: Love小六六 | 来源:发表于2017-06-07 14:57 被阅读0次

题目:IP地址和数字之间的转换

给定 IP address: 10.0.3.193
10  -->  00001010
0   -->  00000000
3   -->  00000011
193 -->  11000001
得到
00001010 00000000 00000011 11000001
转换为10进制数为
167773121
同样给定数字167773121,也要得到ip地址10.0.3.193

我写的函数如下:

function numberAndIPaddress(s){
  if(s.indexOf(".")>0){
  var arr=s.split(".").map(function(value,index){
    return padNumber(Number(value).toString(2),8);
  });
  return ""+parseInt(arr.join(""),2);
  }else{
   reg=/\d{8}/g
   var arr =padNumber(Number(s).toString(2),32).match(reg);
   var result=arr.map(function(value){
     return parseInt(Number(value),2);
   });
   return result.join(".");
  }  
}
function padNumber(num, fill) {
    var len = ('' + num).length;
    return (Array(
        fill > len ? fill - len + 1 || 0 : 0
    ).join(0) + num);
}

罗列知识点

  • 判断是ip地址还是数字
s.indexOf('.')>0
  • 数字转化为2进制数
数字.toString(2);
  • 数字补齐位数,不足的用字符补齐补齐
function padNumber(num, fill,sep) {
    var len = ('' + num).length;
    return (Array(
        fill > len ? fill - len + 1 || 0 : 0
    ).join(sep) + num);//不足用参数传的sep填充
}
  • 转化成十进制数
parseInt(number,2);//2进制数变十进制
  • 字符串按位数切割(数字字符串)
reg=/\d{8}/g;//8位数字进行切割
var arr =s.match(reg);

相关文章

  • 一个有意思的js算法题

    题目:IP地址和数字之间的转换 我写的函数如下: 罗列知识点 判断是ip地址还是数字 数字转化为2进制数 数字补齐...

  • js算法题

    1、js 正则表达式题 var s1 = "get-element-by-id"; 给定这样一个连字符串,...

  • js 算法题

    面试发现自己的算法知识有不足,因此参考了多篇文章学习总结。 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换...

  • js算法题

    1.数组去重 方法一:利用嵌套for循环和splice去重 方法二:利用indexOf去重 方法三:利用Set集合...

  • Manacher 马拉车算法计算回文子串

    最近开始刷算法题,在刷第五题的时候,看到一个有意思的算法,总结一下 计算回文子串,首先简单的有 暴力破解法,就是挨...

  • 合并排序链表

    最近在做一些leetcode上的算法题,有一个合并已排序链表的题很有意思: Merge two sorted li...

  • JS算法题总结

    1. 对象深克隆 2. 数组去重 方法一: 方法二: 3. 数组扁平化 方法一: 方法二: 4. 冒泡排序

  • 20. 有效的括号

    题目 解析 这道题特别有意思,解法和Dijkstra双栈算法表达式求值类似,这题也是一个栈的应用。以字符串( { ...

  • 提莫队长,正在待命!——提莫攻击算法的解题笔记

    LC上最近有人出了一道新题,十分有意思,叫做 Teemo Attacking(提莫攻击)。这道算法题描述的是: 题...

  • 用一行Array.filter去重JS数组

    最近在freeCodeCamp上练手js算法题,发现有很多题目可以直接return一个链式调用的对象完成,恰巧赶上...

网友评论

      本文标题:一个有意思的js算法题

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