二进制字符串求和
题目
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
解答
| class Solution { |
| public String addBinary(String a, String b) { |
| StringBuilder sb = new StringBuilder(); |
| |
| int flag = 0; |
| int i = a.length() - 1, j = b.length() - 1; |
| |
| while(i >= 0 || j >= 0){ |
| int result = 0; |
| result += i >=0 ? a.charAt(i--) - '0' : 0; |
| result += j >=0 ? b.charAt(j--) - '0' : 0; |
| result += flag; |
| sb.append(result % 2); |
| |
| flag = result >> 1; |
| } |
| |
| if(flag > 0) |
| sb.append('1'); |
| return sb.reverse().toString(); |
| |
| } |
| } |
| |
| class Solution { |
| public String addBinary(String a, String b) { |
| return Integer.toBinaryString( |
| Integer.parseInt(a, 2) + Integer.parseInt(b, 2) |
| ); |
| } |
| } |
| |
| 作者:LeetCode-Solution |
| 链接:https: |
| 来源:力扣(LeetCode) |
| 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
| class Solution { |
| public String addBinary(String a, String b) { |
| StringBuilder ans = 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; |
| ans.append(sum % 2); |
| ca = sum / 2; |
| } |
| ans.append(ca == 1 ? ca : ""); |
| return ans.reverse().toString(); |
| } |
| } |
| |
| 作者:guanpengchn |
| 链接:https: |
| 来源:力扣(LeetCode) |
| 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构