题目链接:https://leetcode.com/problems/add-binary/
思路就是用StringBuilder来保存相加得到的 值%2,然后不断刷新进位,
最后把StringBuilder对象反转即可。
AC 2ms 90% Java:
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb=new StringBuilder();
int carry=0;
int i=a.length()-1,j=b.length()-1;
while(i>=0&&j>=0){
int temp=a.charAt(i)-'0'+b.charAt(j)-'0'+carry;
sb.append(String.valueOf(temp%2));
carry=temp/2;
i--;
j--;
}
if(i<0&&j>=0){
while(j>=0){
int temp=b.charAt(j)-'0'+carry;
sb.append(String.valueOf(temp%2));
carry=temp/2;
j--;
}
}else if(j<0&&i>=0){
while(i>=0){
int temp=a.charAt(i)-'0'+carry;
sb.append(String.valueOf(temp%2));
carry=temp/2;
i--;
}
}
if(carry>0)
sb.append(String.valueOf(carry));
return sb.reverse().toString();
}
}