力扣67题
思路:类似力扣第二题,相加之后模(%)进制数获得当前位数的值,然后用相加之后的数除以进制数,获得进位的值,然后循环两个字符串中长度大的次数,并且将进位也加进去。最后,循环完成看进位变量是否为0,否则再进一位。
数据结构:字符串
算法思维:取模、累加
public String addBinary(String a, String b) {
int n = Math.max(a.length(), b.length());
StringBuilder str = new StringBuilder();
//进位
int car = 0;
for (int i = 0; i < n; i++) {
//char 类型 - ‘0’ 可以转为int类型
car += i < a.length() ? a.charAt(a.length() - 1 - i) - '0' : 0;
car += i < b.length() ? b.charAt(b.length() - 1 - i) - '0' : 0;
str.append(car % 2);
car /= 2;
}
if (car > 0) {
str.append(car);
}
//反转
return str.reverse().toString();
}
网友评论