- 浏览: 185601 次
- 性别:
- 来自: 济南
文章分类
最新评论
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
这道题目与Add Two Numbers 这道题目类似。不同的是这道题符合我们从低位到高位的进位方式,也就是从右往左,add two numbers那道题目是从左往右,一个是十进制,一个是二进制。思路是一样的,维护一个进位carry,对于这道题目,如果当前的值大于1的时候就需要进位,此时我们就把carry设置为1。在我们扫描完字符串之后,不要忘记检测carry的值,如果为1我们就要把它加入新的字符串中。代码如下:
For example,
a = "11"
b = "1"
Return "100".
这道题目与Add Two Numbers 这道题目类似。不同的是这道题符合我们从低位到高位的进位方式,也就是从右往左,add two numbers那道题目是从左往右,一个是十进制,一个是二进制。思路是一样的,维护一个进位carry,对于这道题目,如果当前的值大于1的时候就需要进位,此时我们就把carry设置为1。在我们扫描完字符串之后,不要忘记检测carry的值,如果为1我们就要把它加入新的字符串中。代码如下:
public class Solution { public String addBinary(String a, String b) { if(a == null || a.length() == 0) return b; if(b == null || b.length() == 0) return a; int carry = 0; int al = a.length() - 1; int bl = b.length() - 1; StringBuilder sb = new StringBuilder(); while(al >= 0 || bl >= 0) { int tem = 0; if(al >= 0) { tem = a.charAt(al) - '0'; } if(bl >= 0) { tem += b.charAt(bl) - '0'; } tem += carry; if(tem > 1) { carry = 1; } else { carry = 0; } sb.append(tem % 2); al --; bl --; } if(carry == 1) sb.append(carry); return sb.reverse().toString(); } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 271Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 275You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 392Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 380Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 506Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 573Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 484Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 674Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 478The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 436Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 585Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 595Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 432All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 909Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 936Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 609Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 704Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 869Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 795You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 734For a undirected graph with tre ...
相关推荐
标题中的“67.addBinary.playground.zip”表明这是一个与LeetCode第67题相关的Swift编程练习项目。LeetCode是一个在线平台,提供各种算法题目供程序员练习和提升编程技能。第67题通常指的是将两个二进制数相加的问题...
标题中的"BINARY_ADD.rar"和描述中的"二进制加法的源代码"指出,这个压缩包文件包含的是关于二进制加法算法的源代码。二进制加法是计算机科学中最基本的操作之一,特别是在数字逻辑和计算领域。它是将两个二进制数...
public static String addBinary(String x, String y) { int i = x.length() - 1, j = y.length() - 1; int carry = 0; StringBuilder result = new StringBuilder(); while (i >= 0 || j >= 0) { int sum = ...
python对图像提取mask部分: 代码: ...# Add binary masks to images for img_item in os.listdir(images_path): print(img_item) img_path = os.path.join(images_path, img_item) img = cv2.
### 题目:**二进制求和** ... public String addBinary(String a, String b) { StringBuilder result = new StringBuilder(); int carry = 0; // 进位 int i = a.length() - 1; int j = b.length
`function.cpp`可能包含了实现二进制加法的函数,例如`addBinary(int a, int b)`,它接收两个整数(假设它们是二进制表示的),返回它们的二进制和。`function.h`可能是相应的头文件,声明了这个函数,方便在其他...
javascript js_leetcode题解之67-add-binary.js
- **Add Binary**:将两个二进制数相加。 - **Basic Calculator II**:实现一个基本计算器,读取一个表达式并返回计算结果。 本书通过实际编程案例,讲解了各种算法思想和技巧,涵盖了从基础的数据结构(如数组、...
- Add Binary(二进制加法):涉及到二进制数的处理和字符串操作。 - Count and Say(计数和读法):一种涉及生成下一个字符串序列的方法。 - Longest Common Prefix(最长公共前缀):处理字符串数组中的公共前缀...
LeetCode的第67题,也被称为“Add Binary”,要求我们将两个非负整数表示为二进制字符串,然后将它们相加,返回结果的二进制形式。这个问题的核心在于理解二进制运算的规则,包括二进位的加法(0+0=0, 0+1=1, 1+0=1,...
401 | [Binary Watch](https://leetcode.com/problems/binary-watch/) | [C++](./C++/binary-watch.cpp) [Python](./Python/binary-watch.py) | _O(1)_ | _O(1)_ | Easy | | 411 | [Minimum Unique Word ...
def addBinary(num1, num2): carry = 0 result = '' # 让较短的二进制数前面补0,以便于同时处理 max_len = max(len(num1), len(num2)) num1 = '0' * (max_len - len(num1)) + num1 num2 = '0' * (max_len -...
- **二进制求和(Add Binary)**: 给定两个二进制字符串,返回它们的和。 - **基本计算器II(Basic Calculator II)**: 给定一个字符串表达式,实现一个基本计算器来计算并返回结果。 以上总结仅为部分知识点的简述,...
std::string addBinary(std::string a, std::string b) { int carry = 0; // 进位标志 int i = a.length() - 1, j = b.length() - 1; while (i >= 0 || j >= 0 || carry) { // 当遍历完所有位或者没有进位时...
pod repo add binary_spec git@github.com:caixiang305621856/open_binary_spec.git 2.安装mongodb # 进入 /usr/local cd /usr/local # 下载 sudo curl -O ...
* Add Binary:给定两个二进制字符串,返回其和。这个题目需要使用数学的思想,将二进制字符串转换为整数,并返回其和。 * Basic Calculator II:给定一个字符串,返回其计算结果。这个题目需要使用数学的思想,将...
基于题目要求,一个可能的解决方案是创建一个名为`Solution`的类,并在其中定义一个名为`addBinary`的方法。此方法首先需要处理长度不同的问题,由于长度的差异不会影响实际的加法运算,我们通过在较短的字符串前...
- Add Binary: 给定两个二进制字符串,返回它们的和。 - Text Justification: 给定一个单词数组和一个长度 maxWidth,设计一个方法使得每行中单词之间的空间均匀分配,并且左右两端对齐。 - Sqrt(x): 计算并返回x的...