【leetcode】67.(Easy)Add Binary

提交代码:

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;
    }
}

运行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/84310551