Given two binary strings, return their sum (also a binary string).
For example, a = "11" b = "1"
Return "100".
问题:二进制字符串相加
思想:从末尾开始相加,注意使用StringBuffer而不要用String占用常量池空间
if(b==null) return a;
if(a==null) return b;
int carry=0;
int curVal=0;
int i=a.length()-1;
int j=b.length()-1;
StringBuffer sb=new StringBuffer();
String output;
while(i>=0||j>=0){
int aVal=i>=0?(a.charAt(i)-'0'):0;
int bVal=j>=0?(b.charAt(j)-'0'):0;
curVal=(aVal+bVal+carry)%2;
sb.insert(0, curVal);
carry=(aVal+bVal+carry)/2;
i--;j--;
}
if(carry==1){
sb.insert(0, 1);
}
return sb.toString();
转载请注明原文地址: https://ju.6miu.com/read-19759.html