题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
题解:
对两个字符串要从最后一位开始加,注意两字符串长度可能不一致,所以需要有补齐。循环结束后,要判断是否有最后进位
public class Solution {
public String addBinary(String a, String b) {
int flag=0;
String res="";
int lena=a.length(), lenb=b.length();
int len=Math.max(lena,lenb);
for(int i=0;i<len;i++){
//补齐
int pa=0,pb=0;
if(i<lena)
pa= a.charAt(lena-1-i)-'0';
if(i<lenb)
pb= b.charAt(lenb-1-i)-'0';
int tmp=pa+pb+flag;
flag=tmp/2;
res=""+tmp%2+res;//注意+的顺序
}
return (flag == 0) ? res : "1" + res;
}
}