leetcode 문제 풀이 67 # Add Binary Java 버전

1132 단어 leetcode

67. Add Binary


Given two binary strings, return their sum (also a binary string).
For example, a = "11" b = "1" Return "100" .
이진 가법은 0으로 가장 짧은 문자열의 왼쪽에서 두 문자열까지 길이를 보충한다. 예를 들어 a='111', b='1'을 보충하면 그 기본적인 실현은 a='1111', b='0001'을 실현하는 것이다. 이렇게 더하면 코드가 더욱 간결할 뿐이다.
public String addBinary(String a, String b) {
		int lengthA = a.length();
		int lengthB = b.length();
		// carry        
		int val, tempA, tempB, carry = 0;
		StringBuffer sb = new StringBuffer();
		int maxLength = lengthA >= lengthB ? lengthA : lengthB;
		for (int i = 0; i < maxLength; i++) {
			//              a、b      tempA   tempB,      ,  0  
			tempA = lengthA > i ? a.charAt(lengthA - i - 1) - '0' : 0;
			tempB = lengthB > i ? b.charAt(lengthB - i - 1) - '0' : 0;
			val = tempA + tempB + carry;
			carry = val / 2;
			val = val % 2;
			sb.append(val + "");
		}
		//         ,          1
		if (carry == 1)
			sb.append(carry);
		//     
		return sb.reverse().toString();
	}

좋은 웹페이지 즐겨찾기