题目
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
我的解法
public class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();
int i = 0;
int mark = 0;
while(i < a.length() || i < b.length()){
int x = (a.length() > i) ? a.charAt(a.length() - 1 - i) - '0': 0;
int y = (b.length() > i) ? b.charAt(b.length() - 1 - i) - '0': 0;
sb.append((x + y + mark)%2);
mark = (x + y + mark)/2;
i++;
}
if(mark == 1)
return sb.append(mark).reverse().toString();
return sb.reverse().toString();
}
}
算法分析:注意红色标记地方,要用字符-‘0’,才得到对应数字的值。