码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode】67 - Add Binary

时间:2015-08-07 00:22:07      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:

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

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

Solution:二进制加法,和为2进1,和为3进1留1;

 1 class Solution {
 2 public:
 3     string addBinary(string a, string b) {
 4         int sizea=a.size(),sizeb=b.size();
 5         if(sizea<sizeb)return addBinary(b,a);
 6         int n=sizea-sizeb;
 7         string helper(n,0);
 8         b = helper + b;
 9         int carry=0;
10         for(int i=sizea-1;i>=0;i--){
11             int sum=(a[i]-0)+(b[i]-0)+carry;
12             if(sum==0);
13             else if(sum==1){
14                 a[i]=1;
15                 carry=0;
16             }else if(sum==2){
17                 a[i]=0;
18                 carry=1;
19             }else if(sum==3){
20                 a[i]=1;
21                 carry=1;
22             }
23         }
24         if(carry==1)a=1+a;
25         return a;
26     }
27 };

 

【LeetCode】67 - Add Binary

标签:

原文地址:http://www.cnblogs.com/irun/p/4709482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!