leetcode 67 Add Binary

Java:

class Solution {
    public String addBinary(String a, String b) {
        StringBuilder ans = new StringBuilder();
        int la = a.length() - 1;
        int lb = b.length() - 1;
        int carry = 0;
        while ( la>=0 || lb>=0){
            int sum = carry;
            if (la>=0) sum+=a.charAt(la--) - '0';
            if (lb>=0) sum+=b.charAt(lb--) - '0';
            carry = sum/2;
            ans.append(sum%2);
        }
        if(carry > 0) ans.append(carry);
        
        return ans.reverse().toString();
    }
}

Python:

class Solution:
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        if len(a) == 0:
            return b
        if len(b) == 0:
            return a
        if a[-1] == '1' and b[-1] == '1':
            return self.addBinary(self.addBinary(a[:-1], b[:-1]), '1') + '0'
        if a[-1] == '0' and b[-1] == '0':
            return self.addBinary(a[:-1], b[:-1]) + '0'
        else:
            return self.addBinary(a[:-1], b[:-1]) + '1'

猜你喜欢

转载自blog.csdn.net/mrxjh/article/details/79713562