二进制求和
时间:2022-07-24
本文章向大家介绍二进制求和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字1
和0
。
示例
输入: a = "11", b = "1"
输出: "100"
输入: a = "1010", b = "1011"
输出: "10101"
提示
- 每个字符串仅由字符
'0'
或'1'
组成。 -
1 <= a.length, b.length <= 10^4
。 - 字符串如果不是
"0"
,就都不含前导零。
题解
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
var longer = "";
var shorter = "";
if(a.length > b.length){
longer = a;
shorter = b.padStart(a.length,0);
}else{
longer = a.padStart(b.length,0);
shorter = b;
}
var target = "";
var addition = 0;
for(let i=longer.length-1;i>=0;--i){
let unitNum = ~~(longer[i]) + ~~(shorter[i]) + addition;
addition = 0;
if(unitNum >= 2) {
addition = 1;
target = `${unitNum-2}${target}`;
}else{
target = `${unitNum}${target}`;
}
}
if(addition) target = `1${target}`;
return target;
};
思路
首先需要将两个字符串的长度进行统一,判断两个字符串长度的长度,然后选出短的字符串在字符串前填充0
,也就是使用String.prototype.padStart()
方法进行填充,然后定义目标字符串以及进位标记变量,然后从后开始往前遍历字符串,将字符串中的字符转换成数字类型然后相加并与进位变量相加,其中~~
就是利用位运算将字符转换成数字,相加完成后将进位标志置为0
,然后判断字符是否大于2
,如果大于等于2
则将相加的字符减掉2
并将进位标记记为1
,若小于2
则直接拼接字符串,然后不断循环完成目标字符的拼接,若最后依然有进位标志,则直接拼接1
到目标字符串前,然后返回目标字符串即可。
每日一题
https://github.com/WindrunnerMax/EveryDay
题源
https://leetcode-cn.com/problems/add-binary
- hdu---(1280)前m大的数(计数排序)
- 程序员你为什么这么累【续】:编码习惯之Controller规范
- go-nsq使用简述
- hdu---(4515)小Q系列故事——世界上最遥远的距离(模拟题)
- 利用sys schema解决一次诡异的语句hang问题
- hdu----(4513)吉哥系列故事——完美队形II(manacher(最长回文串算法))
- 学习manacher(最长公共回文串算法)
- Apache Spark 2.3 加入支持Native Kubernetes及新特性文档下载
- Oracle 12c 多租户专题|隔离PDB的磁盘IO
- golang 裸写一个pool池控制协程的大小
- 2014---多校训练2(ZCC Loves Codefires)
- 完整的golang 多协程+信道 任务处理示例
- 2014---多校训练一(A Couple doubi)
- hdu----(2586)How far away ?(DFS/LCA/RMQ)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法