题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
题意及分析:求两个用字符串表示 的二进制数的和。主要是判断每次相加的和是否大于2,大于2便进1取余。
代码:
class Solution { public String addBinary(String a, String b) { String temp = ""; int i = a.length()-1,j=b.length()-1; int count = 0; while(i>=0&& j>=0){ count = count + (a.charAt(i)-'0') + (b.charAt(j)-'0'); if(count > 1){ temp = ((count)%2) + temp; count = 1; }else{ temp = count + temp; count = 0; } i--; j--; } //a长一些 while(i>=0){ count += a.charAt(i)-'0'; if(count > 1){ temp = ((count)%2) + temp; count = 1; }else{ temp = count + temp; count = 0; } i--; } //b长一些 while(j>=0){ count += b.charAt(j)-'0'; if(count > 1){ temp = ((count)%2) + temp; count = 1; }else{ temp = count + temp; count = 0; } j--; } if(count == 1) temp = count + temp; return temp; } }