首先把两个string对齐 用0填充前面
然后从后面开始每一位相加 记录得数和进位 将得数插入stringbuilder
注意char和int之间的转换 要 +'0' -'0' 这样就是 ‘1’变成1 否则直接用 ( int ) 的方法转换的话就会得到ascii
public class Solution {
public String addBinary(String a, String b) {
int bit = 1;
int lenA = a.length();
int lenB = b.length();
StringBuilder sb = new StringBuilder ();
int carry = 0;
int sum = 0;
while ( bit <= lenA || bit <= lenB ){
if ( bit <= lenA && bit <= lenB ){
sum = a.charAt ( lenA - bit)-'0' + b.charAt(lenB-bit) -'0' + carry;
}
else if ( bit > lenA ){
sum = b.charAt(lenB-bit) -'0' + carry;
}
else
sum = a.charAt ( lenA - bit) -'0'+ carry;
carry = sum / 2;
int res = sum % 2;
sb.insert( 0, (char)res );
bit ++;
}
return sb.toString();
}
}