计算一个整数的二进制表示中连续出现1最多的次数。
比如13的二进制是:1101,那么他的二进制表示中连续出现的1最多为2次,所以答案就是2:
//方法一:正则 let n=parseInt(readline()) function fn(n){ let str=n.toString(2) var reg=new RegExp(/1+/g); var arr=str.match(reg); arr=Array.from(arr) var max=0; arr.forEach((item)=>{ if(item.length>max){ max=item.length } }) return max } console.log(fn(n)) //方法二:字符比较 let n=parseInt(readline()) function fn(n){ let str=n.toString(2) let max=0 let temp=0 for(let i=0;i<str.length;i++){ if(str[i]==='1'){ temp++ if(temp>max){max=temp} } if(i>0 && str[i]==='0' && str[i-1]==='1'){ temp=0 } } return max } console.log(fn(n))