标签:pen 使用 局部变量 数据 代码 solution turn app 全局变量
思路很简单,使用两个指针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();
}
}
标签:pen 使用 局部变量 数据 代码 solution turn app 全局变量
原文地址:https://www.cnblogs.com/xbc121/p/11746226.html