Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".

给定两个二进制的字符串,返回他们的和。

对于a,b两个二进制字符串,首先通过交换使a的长度小于b的长度。然后在a前面补0令ab的长度相同。然后从最后一位开始往前逐步使用加法规则相加,需要注意的是carry表示前一位向这一位的进位,如果在第k位时,a[i]+b[i]+carry <= 1,则需要把carry清零。

最后判断carry是否为零,若不为零则在前面添加一个carry。

代码如下:

 1 class Solution {
 2 public:
 3     string addBinary(string a, string b) {
 4
 5
 6         if( a.length() > b.length() )
 7         {
 8             string tmp = a;
 9             a = b;
10             b = tmp;
11         }
12
13         string zero = "0";
14
15         while( a.length() != b.length() )
16         {
17             a = zero + a;
18         }
19
20
21         int len = b.length();
22         int carry = 0;
23
24         string res = "";
25         for( int i = 1 ; i <= len ; i++ )
26         {
27             int cur = 0;
28             cur = a[len-i] - '0' + b[len-i] - '0' + carry;
29             if( cur > 1 )
30             {
31                 cur -= 2;
32                 carry = 1;
33             }
34             else
35             {
36                 carry = 0;
37             }
38             char tmp = cur + '0';
39             res = tmp + res;
40         }
41
42         if( carry != 0 )
43         {
44             char tmp = carry + '0';
45             res = tmp + res;
46         }
47
48         return res;
49     }
50 };

转载于:https://www.cnblogs.com/jostree/p/3695130.html

[leetcode] Add Binary相关推荐

  1. LeetCode: Add Binary 解题报告

    Add Binary Given two binary strings, return their sum (also a binary string). For example, a = " ...

  2. LeetCode - Add Binary

    题目: Given two binary strings, return their sum (also a binary string). For example, a = "11&quo ...

  3. LeetCode Add Binary

    Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...

  4. [LeetCode]Add Binary

    Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...

  5. LeetCode:Add Binary

    题目链接 Given two binary strings, return their sum (also a binary string). For example, a = "11&qu ...

  6. LeetCode Add Binary(二进制加法)

    思路:大整数加法 代码如下: public class Solution {public String addBinary(String a, String b){StringBuilder sb = ...

  7. LeetCode刷题记录4——67. Add Binary(easy)

    LeetCode刷题记录4--67. Add Binary(easy) 目录 LeetCode刷题记录4--67. Add Binary(easy) 题目 语言 思路 后记 题目 今天这题是与字符串相 ...

  8. leetcode 67 Add Binary

    Add Binary Total Accepted: 46815 Total Submissions: 189215 My Submissions Given two binary strings, ...

  9. java两个二进制数求和,Leetcode 67:Add Binary(二进制求和)

    Leetcode 67:Add Binary(二进制求和) (python.java) Given two binary strings, return their sum (also a binar ...

最新文章

  1. Linux安全基础:shell及一些基础命令
  2. python如何询问_学习Python问?
  3. vue3与vue2的详细区别
  4. oracle 11g(二)安装过程
  5. C#LeetCode刷题-剑指Offer
  6. Siri为什么越来越蠢?
  7. CrackMe022
  8. java数独最快解,Java解数独--世界最难数独
  9. Ricequant 平台入门--第一个量化交易策略
  10. python中flag=1什么意思_001_flag包详解
  11. 阿尔伯塔大学知名计算机工程学教授,阿尔伯塔大学计算机工程硕士解析
  12. ZLL的每周一更(maybe)--浏览器的运行机制
  13. 一、《图解HTTP》了解Web和网络基础
  14. 廖雪峰python#统计学生人数
  15. Docker进入容器报错
  16. 解决ios系统下微信页面无法播放背景音乐的问题
  17. linux查看某个端口的流量_linux中查看网卡流量六种方法
  18. Race Condition(资源竞争) 解决方案总结
  19. OpenGL ES之变换反馈Transform Feedback的使用流程
  20. springboot Elasticsearch 配置 Demo

热门文章

  1. redis -cli command not found_记一次 Linux 服务器 redis 漏洞分析
  2. boa服务器如何运行cgi,嵌入式WEB服务器BOA+CGI.ppt
  3. autocad软件提供的哪些功能可以提高设计效率?_节省80%制图时间:AutoCAD如何有效“手脑”结合,释放创作潜能?...
  4. ora03135连接失去联系 进程id 0_进程组、会话、控制终端概念,如何创建守护进程?...
  5. linux mrtg 进程名称,Linux上的MRTG流量监控中心
  6. 有哪些事,是你做了领导后才明白的?
  7. Android中的动画
  8. Round-Robin负载均衡算法及其实现原理
  9. Requests 2.18.1文档
  10. AI自动P图:maskrcnn+inpaintting消除并修复指定区域图像