二进制求和
首先从后往前挨个取数据,我这里用的charAt(int i)
再使用StringBuffer进行每次的值存储,使用变量carry来判断是否需要进位
如果最终carry的还有值,就表示最前面还需要进位,使用reverse方法反转stringBuffer,返回
class Solution {
public String addBinary(String a, String b) {
StringBuffer stringBuffer = new StringBuffer();
int n = Math.max(a.length(), b.length()), carry = 0;
for(int i = 0; i < n; i++){
carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
stringBuffer.append((char) (carry % 2 + '0'));
carry /= 2;
}
if(carry > 0){
stringBuffer.append('1');
}
stringBuffer.reverse();
return stringBuffer.toString();
}
}



