[LeetCode]67. 二进制求和(字符串)(数学)
题目
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
题解
两个字符串从低位开始加,前面位不够补0。维护进位,最后加上最后一个进位,最后反转结果字符串。
代码
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();
int ca = 0;
for(int i = a.length() - 1, j = b.length() - 1;i>=0||j>=0;i--,j--){
int sum=ca;
sum+= i>=0?a.charAt(i)-'0':0;
sum+= j>=0?b.charAt(j)-'0':0;
sb.append(sum%2);
ca= sum/2;
}
sb.append(ca==1?1:"");
return sb.reverse().toString();
}
}
posted on 2020-06-14 00:04 coding_gaga 阅读(98) 评论(0) 编辑 收藏 举报
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步