首页 > 其他 > 详细

Add Binary

时间:2019-10-26 23:57:30      阅读:141      评论:0      收藏:0      [点我收藏+]

思路很简单,使用两个指针i和j,分别用来遍历字符串a和字符串b。使用一个全局变量carry来记录其进位,使用一个局部变量sum来记录每一次指针所指向的数字相加之和与carry的和。然后,重新给carry和sum赋值,让sum和carry等于0或1。最后如果carry等于1,就需要将它append。最后使用reverse方法进行反转即可得到答案。需要注意的是,StringBuilder中的append方法中参数是int,long,double,boolean等数据类型,会自动将其原内容转换成字符串来进行添加。

代码如下:

class Solution {
public String addBinary(String a, String b) {
int i=a.length()-1;
int j=b.length()-1;
int carry=0;
StringBuilder sb=new StringBuilder();
while(i>=0||j>=0){
int sum=0;
sum+=i>=0?a.charAt(i)-‘0‘:0;
sum+=j>=0?b.charAt(j)-‘0‘:0;
sum+=carry;
carry=sum/2;
sum=sum%2;
sb.append(sum);//append方法会直接将sum转换成字符串
i--;
j--;
}
if(carry==1){
sb.append(carry);
}
return sb.reverse().toString();
}
}

Add Binary

原文:https://www.cnblogs.com/xbc121/p/11746226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!