`
cozilla
  • 浏览: 92127 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[LeetCode] Add Binary

 
阅读更多

Add Binary

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

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

class Solution {
public:
    string addBinary(string a, string b) {
        int la = a.size(), lb = b.size();
        int len = max(la, lb) + 2;
        char* res = new char[len];
        memset(res, 0, len);
        int left = 0, cur;
        int ia = la - 1, ib = lb - 1, ic = len - 2;
        while (ia >= 0 && ib >= 0) {
            cur = a[ia--] + b[ib--] - 2 * '0' + left;
            if (cur > 1) {
                res[ic--] = '0' + cur % 2;
                left = 1;
            } else {
                res[ic--] = '0' + cur;
                left = 0;
            }
        }
        
        while (ia >= 0) {
            cur = a[ia--] - '0' + left;
            if (cur > 1) {
                res[ic--] = '0' + cur % 2;
                left = 1;
            } else {
                res[ic--] = '0' + cur;
                left = 0;
            }
        }
        while (ib >= 0) {
            cur = b[ib--] + left - '0';
            if (cur > 1) {
                res[ic--] = '0' + cur % 2;
                left = 1;
            } else {
                res[ic--] = '0' + cur;
                left = 0;
            }
        }
        if (left > 0) res[ic--] = '1';
        return string(res+ic+1);
        
    }
};

 

分享到:
评论

相关推荐

    js-leetcode题解之67-add-binary.js

    javascript js_leetcode题解之67-add-binary.js

    67.addBinary.playground.zip

    标题中的“67.addBinary.playground.zip”表明这是一个与LeetCode第67题相关的Swift编程练习项目。LeetCode是一个在线平台,提供各种算法题目供程序员练习和提升编程技能。第67题通常指的是将两个二进制数相加的问题...

    LeetCode最全代码

    401 | [Binary Watch](https://leetcode.com/problems/binary-watch/) | [C++](./C++/binary-watch.cpp) [Python](./Python/binary-watch.py) | _O(1)_ | _O(1)_ | Easy | | 411 | [Minimum Unique Word ...

    leetcode卡-LeetCode:我的LeetCode解决方案

    Add Two Numbers], Linked list 2017.06.13 打卡[LeetCode 200. Number of Islands], BFS 2017.06.14 打卡[LeetCode 3. Longest Substring Without Repeating Characters], N/A 2017.06.15 打卡[LeetCode 407. ...

    Leetcode题目+解析+思路+答案.pdf

    - **Add Binary**:将两个二进制数相加。 - **Basic Calculator II**:实现一个基本计算器,读取一个表达式并返回计算结果。 本书通过实际编程案例,讲解了各种算法思想和技巧,涵盖了从基础的数据结构(如数组、...

    Leetcode book刷题必备

    根据提供的文件信息,我们能提炼出一系列IT相关知识点,主要是围绕LeetCode这本电子书的主题——即编程面试题目解答。此电子书内容丰富,涵盖了算法和数据结构中常见的问题及其解决方案,非常适合准备技术面试的读者...

    leetcode题目分类

    - Add Two Numbers(两数相加):以链表的形式表示两个非负整数,并将其相加。 - Longest Substring Without Repeating Characters(无重复字符的最长子串):找出无重复字符的最长子串的长度。 - Median of Two ...

    LeetCode leetcode部分题解答代码实现

    * Add Binary:给定两个二进制字符串,返回其和。这个题目需要使用数学的思想,将二进制字符串转换为整数,并返回其和。 * Basic Calculator II:给定一个字符串,返回其计算结果。这个题目需要使用数学的思想,将...

    _leetcode-python.pdf

    - Add Binary: 给定两个二进制字符串,返回它们的和。 - Text Justification: 给定一个单词数组和一个长度 maxWidth,设计一个方法使得每行中单词之间的空间均匀分配,并且左右两端对齐。 - Sqrt(x): 计算并返回x的...

    Leetcode答案(c++版)

    **1.1 Add Two Numbers (2)** - **问题描述**:给定两个非空链表来表示两个非负整数。数字最高位位于链表的首位。将这两个数字相加并返回一个新的链表。 - **解题思路**: - 使用一个临时变量记录进位值。 - 遍历...

    leetcode双人赛-leetcode-1:leetcode-1

    leetcode双人赛LeetCode ...AddBinary :简单的问题。 AddTwoNumbers :简单的问题。 Anagrams :简单的#hashtable问题。 BalancedBinaryTree :简单的#balance #tree问题。 BestTimetoBuyandSellStock :简单的问题。 ...

    leetcode中文版-leetcode:leetcode

    leetcode中文版车鸟 一组用python编写的算法。 种类 冒泡排序 插入排序 归并排序 桶排序 计数排序 基数排序 选择排序 快速排序 堆排序 搜索 二分查找 深度优先搜索 广度优先搜索 递归 json 漂亮的打印 过滤中文文件 ...

    lrucacheleetcode-LeetCode:LeetCode刷题

    两数相加(Add Two Numbers) 2018.9.25 翻转二叉树(Invert Binary Tree) 2018.9.25 环形链表(Linked List Cycle) 2018.9.25 环形链表 II(Linked List Cycle II) 2018.9.26 删除排序链表中的重复元素 II...

    leetcodepython001-LeetCode:力码

    leetcode ...Binary Linked-list 002 Add Two Numbers Stack 020 Valid Parenthesis Hash Table 001 TwoSum Reference 完整的学习流程 How to be a softwair engineer: 其他人详解 Python的各式演算法

    java-leetcode题解之第67题二进制求和.zip

    LeetCode的第67题,也被称为“Add Binary”,要求我们将两个非负整数表示为二进制字符串,然后将它们相加,返回结果的二进制形式。这个问题的核心在于理解二进制运算的规则,包括二进位的加法(0+0=0, 0+1=1, 1+0=1,...

    leetcode答案-ruby_leetcode:ruby_leetcode

    Programming),或是二分查找(Binary Search),或是回溯(Back tracing),或是分治法(Divide and Conquer),还有大量的对 树,数组、链表、字符串 和 hash 的操作。通过做这些题能让你对这些最基础的算法的思路...

    python-algorithm-templates:Python算法模板和LeetCode问题解决方案

    Algorithm templates and LeetCode SolutionsTBD Add multi binary search algorithm for leetcode0034 Add Segment Tree for data structure Add union-find algorithm(Disjoint Set Union) for data structure Add...

    leetcode中国-leetcode:leetcode刷题

    addBinary longestPalindrome maximal rectangle :dp问题,较难 largestRectangleArea 求直方图的最大面积,左右两次扫面+剪枝优化 Valid Parentheses 用栈判断括号匹配 Regular Expression Matching 递归匹配 ...

    lrucacheleetcode-leetcode:个人刷leetcode遇到的一些题汇总(golang)

    add-two-numbers find-peak-element longest-common-subsequence longest-consecutive-sequence max-area-of-island next-greater-element-ii serialize-and-deserialize-binary-tree subarray-sum-equals-k binary-...

Global site tag (gtag.js) - Google Analytics