力扣专题——剑指 Offer II 002. 二进制加法
Posted super尚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣专题——剑指 Offer II 002. 二进制加法相关的知识,希望对你有一定的参考价值。
题目
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。
输入为 非空 字符串且只包含数字 1 和 0。
示例
示例 1:
输入: a = “11”, b = “10”
输出: “101”
解题思路
先将字符串转为字符,然后按位求和,将求和后的结果跟2取余,结果加到字符串中,进位的数下次继续加。然后移位两个字符串指针。最后将数据翻转,再toString。
代码
class Solution {
public String addBinary(String a, String b) {
int i = a.length()-1;
int j = b.length()-1;
int add=0;
StringBuilder ans=new StringBuilder();
while(i>=0||j>=0){
if(i>=0)
add += a.charAt(i--) - '0';
if(j>=0)
add += b.charAt(j--) - '0';
ans.append(add%2);
add/=2;
}
if(add>=1)
ans.append(add);
return ans.reverse().toString();
}
}
以上是关于力扣专题——剑指 Offer II 002. 二进制加法的主要内容,如果未能解决你的问题,请参考以下文章
力扣1190/6/剑指Offer57-II/58-I/-II