leetcode #67 in cpp

原创 2016年05月31日 02:10:58

Solution:

It is the same as #66. We use 2 instead of 10 as the modulo.

Code:

class Solution {
public:
    string addBinary(string a, string b) {
        int carry = 0;
        if(a.length() < b.length()){
            string temp = a;
            a = b;
            b = temp;
        }
        int alen = a.length();
        int blen = b.length();
        int i = 0;
        while(i<alen){
            if(i<blen){
                if(a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry>=2){
                    a[alen - i - 1] = (a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry) % 2 + '0';
                    carry = 1;  
                } 
                else{
                    a[alen - i - 1] = (a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry) + '0';
                    carry = 0;
                }
            }else{
                if(a[alen - i - 1] - '0' + carry>=2){
                    a[alen - i - 1] = (a[alen - i - 1] - '0' + carry) % 2 + '0';
                    carry = 1;  
                }else{
                    a[alen - i - 1] = (a[alen - i - 1] - '0' + carry) + '0';
                    carry = 0;
                    break;
                }
            }
            i++;
        }
        if(carry) a = '1' + a;
        return a;
    }
};

leetcode 67 Add Binary

Add Binary Total Accepted: 46815 Total Submissions: 189215 My Submissions                   ...
  • wangyaninglm
  • wangyaninglm
  • 2015年07月05日 21:49
  • 2994

LeetCode - 67. Add Binary

将两个以String表示的二进制数从低位逐个相加,使用一个carry变量循环记录每一位相加的进位,并且在循环相加下一位的时候把carry也加进来。把String中的char变成数字的方式非常巧妙,使用...
  • shenzhu0127
  • shenzhu0127
  • 2016年07月04日 10:09
  • 135

Add Binary | leetcode 67 【Java解题报告】

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Re...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2015年10月04日 14:23
  • 1799

LeetCode(67) Add Binary

题目Given two binary strings, return their sum (also a binary string).For example, a = “11” b = “1” ...
  • fly_yr
  • fly_yr
  • 2015年08月19日 20:58
  • 1841

LeetCode 67 Add Binary(二进制相加)(*)

翻译给定两个二进制字符串,返回它们的和(也是二进制字符串)。例如, a = "11" b = "1" 返回 "100".原文Given two binary strings, return their...
  • NoMasp
  • NoMasp
  • 2016年02月02日 13:49
  • 2138

LEETCODE 67

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1...
  • zj443108444
  • zj443108444
  • 2016年03月08日 15:41
  • 124

LeetCode 67

Add Binary     这个题的意思比较明了,计算两个字符串表示的二进制数的加法,可以参照示例看看,意思还是比清楚的。 我的思路是从右往左计算,将他们的和放到一个新的string中,其中最主...
  • zr1076311296
  • zr1076311296
  • 2016年06月18日 14:56
  • 1419

[leetcode-67]Add Binary(C)

问题描述: Given two binary strings, return their sum (also a binary string).For example, a = “11” b =...
  • zdavb
  • zdavb
  • 2015年08月02日 22:41
  • 239

[leetcode] 【分治法】 50. Pow(x, n)

Implement pow(x, n). 题意 实现幂函数。 题解 使用分治法求解。 分:将n分成n/2  直到n=0时,返回1; 治:对n为偶数,返回两数相乘的结果,奇数再乘多一个x...
  • u014654002
  • u014654002
  • 2016年06月21日 00:37
  • 381

LeetCode Solution(持续更新,java>c++)

Title Add Date AC Rates
  • disappearedgod
  • disappearedgod
  • 2014年04月13日 21:52
  • 8831
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode #67 in cpp
举报原因:
原因补充:

(最多只允许输入30个字)