🌗 67. 二进制求和
2022年10月10日
- algorithm
🌗 67. 二进制求和
难度: 🌗
问题描述
解法
class Solution {
public String addBinary(String a, String b) {
// 思路:
// 从低位开始计算
int m = a.length();
int n = b.length();
int c = 0;
int i = m - 1;
int j = n - 1;
StringBuilder sb = new StringBuilder();
while(i >= 0 && j >= 0) {
int x = a.charAt(i) - '0';
int y = b.charAt(j) - '0';
int cur = x + y + c;
if(cur > 1) {
cur = cur - 2;
c = 1;
} else {
c = 0;
}
sb.append(cur);
i --;
j --;
}
while(i >= 0) {
int x = a.charAt(i) - '0';
int cur = x + c;
if(cur > 1) {
cur -= 2;
c = 1;
} else {
c = 0;
}
sb.append(cur);
i --;
}
while(j >= 0) {
int y = b.charAt(j) - '0';
int cur = y + c;
if(cur > 1) {
cur -= 2;
c = 1;
} else {
c = 0;
}
sb.append(cur);
j --;
}
if(c == 1) {
sb.append(c);
}
return sb.reverse().toString();
}
}