Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
思路:就是普通的加法,加入进位就行。注意循环结束的时候,如果进位为1,则在前面加一个1就可
代码如下(已通过leetcode)
public class Solution {
public String addBinary(String a, String b) {
int lengthA=a.length();
int lengthB=b.length();
if(a.length()>b.length()) {
for(int i=0;i<lengthA-lengthB;i++) b='0'+b;
} else for(int i=0;i<lengthB-lengthA;i++) a='0'+a;
int temp=0;
String ans="";
for(int i=a.length()-1;i>=0;i--) {
if((a.charAt(i)-'0')+(b.charAt(i)-'0')+temp>1) {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp-2+ans;
temp=1;
} else {
ans=(a.charAt(i)-'0')+(b.charAt(i)-'0')+temp+ans;
temp=0;
}
}
if(temp==1) ans=temp+ans;
return ans;
}
}