【leetcode】67.(Easy)Add Binary
阿新 • • 發佈:2018-11-22
提交程式碼:
class Solution {
public String addBinary(String a, String b) {
int numA,numB,carry=0;
int p1=a.length()-1,p2=b.length()-1;
List<Character> tmp=new ArrayList<Character>();
while(p1>=0&&p2>=0) {
numA=a.charAt(p1)-'0';
numB= b.charAt(p2)-'0';
if(numA+numB+carry==0) {
tmp.add('0');
carry=0;
}else if(numA+numB+carry==1) {
tmp.add('1');
carry=0;
}else if(numA+numB+carry==2){
tmp.add('0');
carry=1;
}else {
tmp.add('1');
carry=1;
}
p1--;p2-- ;
}
while(p1>=0) {
numA=a.charAt(p1)-'0';
if(numA+carry==0) {
tmp.add('0');
carry=0;
}else if(numA+carry==1) {
tmp.add('1');
carry=0;
}else {
tmp.add('0');
carry=1;
}
p1--;
}
while(p2>=0) {
numB= b.charAt(p2)-'0';
if(numB+carry==0) {
tmp.add('0');
carry=0;
}else if(numB+carry==1) {
tmp.add('1');
carry=0;
}else {
tmp.add('0');
carry=1;
}
p2--;
}
if(carry==1)
tmp.add('1');
String ans="";
for(int i=tmp.size()-1;i>=0;i--)
ans+=tmp.get(i);
return ans;
}
}
執行結果: