当前位置:网站首页>二进制加法
二进制加法
2022-08-09 10:58:00 【拾荒大妈】
题目
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。
输入为 非空 字符串且只包含数字 1 和 0。
代码
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
var i = Math.max(a.length,b.length)
a = a.padStart(i,'0');//位数不同,左边填充"0"
b = b.padStart(i,'0');
var flag = 0;
var sum = "";
for(let j = i-1 ;j >= 0 || flag!=0;j--){
var misum;
if(j<0){
misum = flag;
flag = 0;
}
else{
misum = parseInt(a[j])+parseInt(b[j])+flag;
flag = 0 ;
}
if(misum >= 2){
flag = 1;
}
if(misum%2 == 1){
sum+="1";
}
else sum+="0";;
}
return sum.split("").reverse().join("");
};
注意
1. 传入的值的类型是字符,可能会出现字符长度不一样的情况,首先需要填充0使字符一致。
2. flag用于标志是否有进位,当相应位数值和flag相加,如果为1或者3,则填加“1”,,为0或者2,添加“0”
3 需把相应位转化为数字类型,然后进行相加,最后结果需要反序
边栏推荐
猜你喜欢

golang 标准库json Marshal、Unmarshal坑

MNIST机器学习入门

情感分析SowNLP词库

Netscope: Online visualization tool for neural network structures

MATLAB中如何把cftool拟合的函数输出到命令行(解决如何导出拟合后的曲线数据)

程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果

MATLAB代码实现三次样条插值

Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)

linux mysql操作的相关命令

How tall is the B+ tree of the MySQL index?
随机推荐
如何在gazebo进行 joint的转动控制
批量转换经纬度的网页实现方法
threejs+shader 曲线点运动,飞线运动
golang源代码阅读,sync系列-Cond
pip common commands and changing source files
tensorflow实现线性方程的参数调整
activemq 消息持久化
Solve 1. tensorflow runs using CPU but not GPU 2. GPU version number in tensorflow environment 3. Correspondence between tensorflow and cuda and cudnn versions 4. Check cuda and cudnn versions
Invisible OOM in kubernetes
golang 三种指针类型具体类型的指针、unsafe.Pointer、uintptr作用
【 original 】 VMware Workstation implementation Openwrt soft routing, the ESXI, content is very detailed!
Missing URI template variable ‘employeeNumber‘ for method parameter of type String
AQS同步组件-FutureTask解析和用例
获取指定年度所有周的工具类
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
爬虫实例,获取豆瓣上某部电影的评论
1007 Maximum Subsequence Sum (25分)
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 2 Validate input: letters and numbers only
Quartz分布式实现