LeetCode 67. Add Binary (二进制相加)
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
题目标签:Math
题目给了我们两个string a 和 b,让我们把这两个二进制 相加。
首先把两个string 的长度得到,然后从右向左 取 两个string 的 digit。
增设一个 carry = 0;
每一轮把 digit a + digit b + carry = sum:
新的 digit = sum % 2;
新的 carry = sum / 2;
注意当两个string 都走完时候,还要检查一下carry, 是否需要加上digit。
Java Solution:
Runtime beats 42.60%
完成日期:12/11/2017
关键词:Math
关键点:digit = sum % 2; carry = sum / 2
class Solution
{
public String addBinary(String a, String b)
{
StringBuilder sb = new StringBuilder();
int aLen = a.length() - 1;
int bLen = b.length() - 1;
int carry = 0; while(aLen >= 0 || bLen >= 0)
{
int sum = carry; if(bLen >= 0)
sum += b.charAt(bLen--) - '0';
if(aLen >= 0)
sum += a.charAt(aLen--) - '0'; sb.insert(0, sum % 2);
carry = sum / 2;
} // for last carry
if(carry != 0)
sb.insert(0, carry); return sb.toString();
}
}
参考资料:https://discuss.leetcode.com/topic/13698/short-ac-solution-in-java-with-explanation
LeetCode 题目列表 - LeetCode Questions List
题目来源:https://leetcode.com/
LeetCode 67. Add Binary (二进制相加)的更多相关文章
- [LeetCode] 67. Add Binary 二进制数相加
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- leetCode 67.Add Binary (二进制加法) 解题思路和方法
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...
- [leetcode]67. Add Binary 二进制加法
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- LeetCode 67 Add Binary(二进制相加)(*)
翻译 给定两个二进制字符串,返回它们的和(也是二进制字符串). 比如, a = "11" b = "1" 返回 "100". 原文 Give ...
- (String) leetcode 67. Add Binary
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- leetcode 67. Add Binary (高精度加法)
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- Leetcode 67 Add Binary 大数加法+字符串处理
题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...
- LeetCode 67. Add Binary
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- Java [Leetcode 67]Add Binary
题目描述: Given two binary strings, return their sum (also a binary string). For example,a = "11&qu ...
随机推荐
- Python基础语法(转)
作者:Peter 出处:http://www.cnblogs.com/Peter-Zhang/ Python 基础语法(一) Python的特点 1. 简单 Python是一种代表简单思想的语言. ...
- 关于串通京东接口的demo
public string Get(int id) { JObject o = new JObject( new JProperty("billNo", "ESL1363 ...
- (转)淘淘商城系列——商品搜索功能Dao实现
http://blog.csdn.net/yerenyuan_pku/article/details/72909286 终于进入商品搜索功能的开发中了,本文我来教大家编写实现商品搜索功能的Dao层代码 ...
- 安卓app测试之Monkeyscript
MonkeyScript是一组可以被Monkey识别的命令集合 优点:MonkeyScript可以完成重复固定的操作 使用:adb shell monkey -f <scriptfile> ...
- 搭建FileZilla
FileZilla是C/S架构的,有服务端和客户端 客户端下载地址https://www.filezilla.cn/download/client 安装,一般就下一步下一步了. 服务端下载:https ...
- 梦想CAD控件文字COM接口知识点
一.参数绘制文字 在CAD设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOU ...
- 02JavaScript基础语法及数据类型
JavaScript基础语法及数据类型 2.1数据类型 2.1.1字符串(String) 用单引号或双引号括起来的零个或多个单一的字符所组成. 2.1.2数值(Number) 包含整数或浮点数. 2. ...
- linux 挂载数据盘
完整的阿里云挂载数据盘方法如下: 1.入手阿里云后查看有几块硬盘:(只显示概况,不显示分区情况) fdisk -l|grep Disk 2.查看硬盘分区 fdisk -l 如果有提示:disk /de ...
- UVA - 11536 Smallest Sub-Array(尺取法)
题目: 思路: 读完题之后第一时间想到的是尺取法来做这个题,结果让自己写写崩了,还是练得少!! 到网上搜了一下学习了大佬的标记方法,用一个变量来判断是不是都已经出现,要比每次都判断一下快超多. 代码: ...
- Python使用Flask框架,结合Highchart处理csv数据(引申-从文件获取数据--从数据库获取数据)
参考链接:https://www.highcharts.com.cn/docs/process-text-data-file 1.javascript代码 var options = { chart: ...