조컴퓨터

*67. Add Binary 본문

LeetCode/Algorithms

*67. Add Binary

챠오위 2021. 11. 2. 22:57

 

Interger.parseInt(a, 2);

...로 접근했다가 큰 수 때문에 튕겼다.

-----------------------

int B = Integer.valueOf(b, 2);
int C = A + B;
        
while ( C > 0 ) {
     ans = ( C % 2) + ans;
     C /= 2;
}

-----------------------

 

class Solution {
    public String addBinary(String a, String b) {
        if( a == null || b == null ) {
            return a == null ? b: a;
        }
        
        int dec = 0;
        StringBuilder sb = new StringBuilder();
        
        for( int i=a.length()-1, j=b.length()-1; i>=0 || j>=0 || dec>0; i--, j-- ) {
            int sum = 0;
            sum += (i>=0) ? a.charAt(i) - '0' : 0;
            sum += (j>=0) ? b.charAt(j) - '0' : 0;
            sum += dec;
            
            dec = sum/2;
            sum %= 2;
            sb.append(sum);
        }
        return sb.reverse().toString(); 
    }
}

 

 

 

'LeetCode > Algorithms' 카테고리의 다른 글

66. Plus One  (0) 2021.11.02
58. Length of Last Word  (0) 2021.10.28
53. Maximum Subarray  (0) 2021.10.27
35. Search Insert Position  (0) 2021.10.20
28. Implement strStr()  (0) 2021.10.20