Add Binary
给两个string, 代表二进制的数, 返回他们相加后的二进制. 这个和十进制没啥区别….
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class Solution { public String addBinary(String a, String b) { if(a.length() < b.length()) return addBinary(b,a); int pa = a.length() - 1; int pb = b.length() - 1; int carry = 0; String res = ""; while(pb >=0) { int sum = (int)(a.charAt(pa)-'0') + (int)(b.charAt(pb)-'0') + carry; carry = sum / 2; res = sum % 2 + res; pa--; pb--; } while(pa>=0){ int sum = (int)(a.charAt(pa)-'0')+carry; carry = sum / 2; res = sum % 2 + res; pa--; } if(carry != 0) res = 1+res; return res; } } |