博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode:67. 二进制求和
阅读量:3706 次
发布时间:2019-05-21

本文共 739 字,大约阅读时间需要 2 分钟。

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 1 和 0

示例 1:

输入: a = "11", b = "1"输出: "100"

示例 2:

输入: a = "1010", b = "1011"输出: "10101"

解题思路:

和字符串相加的算法一致,考虑进位,只不过对2求余。如果连这个都不会,。。。,那就看下面代码。

C++
class Solution {
public:
    string addBinary(string a, string b) {
        while (int(a.size()) >= 2 && a[0] == '0') a.erase(a.begin());
        while (int(b.size()) >= 2 && b[0] == '0') b.erase(b.begin());
        if (a == "0") return b;
        if (b == "0") return a;
        if (a.size() < b.size()) swap(a, b);
        b = string(int(a.size() - b.size()), '0') + b;//对齐
        int sgn = 0, data;
        for (int i = int(a.size()); i >= 1; i--) {
            data = int(a[i - 1] - '0') + int(b[i - 1] - '0') + sgn;
            sgn = data / 2;
            data = data % 2;
            a[i - 1] = data + '0';
        }
        if (sgn == 1) a = string(1, '1') + a;
        return a;
    }
};

 

转载地址:http://vrfjn.baihongyu.com/

你可能感兴趣的文章
ubuntu安装qwt出现错误时"mkdir: 无法创建目录“/usr/local/qwt-6.1.3“: 权限不够"
查看>>
QT串口调试软件
查看>>
QGC开发(一)---编译构建源码
查看>>
Ubuntu安装QT后无法输入中文怎么办?
查看>>
新装Ubuntu18.04系统配置PX4环境
查看>>
QGC注释消息提示框
查看>>
Qt编译PX4源码,参考如下进行配置
查看>>
每日一练(二十一)
查看>>
每日一练(二十二)
查看>>
51单片机—串口通信
查看>>
51单片机—红外遥控
查看>>
C51—模拟IIC总线实现EEPROM存取数据
查看>>
C51—小知识点
查看>>
51单片机—使用PWM对直流电机调速
查看>>
51单片机—LCD1602显示模块
查看>>
头文件的建立
查看>>
STM32—常用的几种伪指令宏
查看>>
STM32—位带操作
查看>>
Keil5中出现中文乱码的解决方法
查看>>
【写一个操作系统】1—hello world重出江湖
查看>>