67.二進制求和
執行用時 :3 ms, 在所有 Java 提交中擊敗了60.62%的用戶
將每一位數對應並相加,再加上進位(cout),cout只需要將這一位的結果除以2即可 ( 2/2 == 1 , 1/2==0 , 0/2 == 0 ) ,最後將結果mod 2加入到StringBuilder並反轉輸出
class Solution {
public String addBinary(String a, String b) {
int al=a.length()-1;
int bl=b.length()-1;
StringBuilder stringBuilder=new StringBuilder();
int cout=0;
int t=0;
for (int i = al, j=bl; i>=0||j>=0 ; i--,j--) {
int l=i>=0?a.charAt(i)-'0':0;
int r=j>=0?b.charAt(j)-'0':0;
t=l+r+cout;
cout=t/2;
stringBuilder.append(t%2);
}
if(cout==1)
stringBuilder.append(cout);
return stringBuilder.reverse().toString();
}
}