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

思路

string s = ""; 目标字符串

cp 存储进位;取 0或1

sum = a[i] + b[i] + cp;分为四种情况

  0    s += '0'; cp = 0;

  1  s += '1'; cp = 0;

  2  s += '0'; cp = 1;

  3  s += '1'; cp = 1; 

C++实现

string addBinary(string& a, string& b) {
// Write your code here
int i = a.size() - 1;
int j = b.size() - 1; int cp = 0;
string s = "";
while (i >= 0 || j >= 0)
{
char a1;
char b1;
if (i >= 0) a1 = a[i];
else a1 = '0';
if (j >= 0) b1 = b[j];
else b1 = '0';
int p = (a1 - '0') + (b1 - '0') + cp;
if (p == 0)
{
s = '0' + s;
cp = 0;
}
else if (p == 1)
{
s = '1' + s;
cp = 0;
}
else if (p == 2)
{
s = '0' + s;
cp = 1;
}
else if (p == 3) {
s = '1' + s;
cp = 1;
}
if(i != -1) i--;
if(j != -1) j--;
} if (cp == 1)
{
s = '1' + s;
}
return s;
}

  

LintCode_408 二进制求和的更多相关文章

  1. lintcode:Add Binary 二进制求和

    题目: 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 样例 a = 11 b = 1 返回 100 解题: 和求两个链表的和很类似 考虑进位,考虑最后一项的进位 0+0 = 0 不 ...

  2. leetcode-67.二进制求和

    leetcode-67.二进制求和 Points 数组 数学 题意 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = &qu ...

  3. 二进制求和(LintCode)

    二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 样例 a = 11 b = 1 返回 100 细节出了好多问题,提交了好多次... public class Solution { / ...

  4. Leecode刷题之旅-C语言/python-67二进制求和

    /* * @lc app=leetcode.cn id=67 lang=c * * [67] 二进制求和 * * https://leetcode-cn.com/problems/add-binary ...

  5. LeetCode:二进制求和【67】

    LeetCode:二进制求和[67] 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11" ...

  6. # Leetcode 67:Add Binary(二进制求和)

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

  7. Java实现 LeetCode 67 二进制求和

    67. 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1 ...

  8. Add Strings大整数加法十进制求和 & Add Binary二进制求和

    [抄题]: 以字符串的形式给出两个非负整数 num1 和 num2,返回 num1和 num2 的和. 比如一个50位+一个100位. 给定 num1 = "123",num2 = ...

  9. [Swift]LeetCode67. 二进制求和 | Add Binary

    Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...

随机推荐

  1. css3的2D变形

    一.2D变形 1.变形 transform:translate();translateX();translateY();translate(,); 2.过渡 transition:all 1s; 二. ...

  2. charles for https

    To remotely capture http or https traffic with charles you will need to do the following: HOST - Mac ...

  3. linux查看磁盘大小,使用量等等信息

    第一:统一磁盘整体情况 1.查看当前目录命令 df -h 结果: 统一每个目录下磁盘的整体情况 2.查看指定目录在命令后直接放目录名,比如查看“usr”目录使用情况: df -h /usr/结果: 统 ...

  4. 原生 js 实现摇一摇功能

    参考此大牛的博客:https://blog.csdn.net/chclvzxx/article/details/46325053

  5. Jquery手机下拉刷新,下拉加载数据

    一.Jquery手机下拉刷新,下拉加载数据.附加有源码 <!DOCTYPE html> <html> <head> <title>手机</titl ...

  6. 2018-8-14-Resharper-如何把类里的类移动到其他文件

    title author date CreateTime categories Resharper 如何把类里的类移动到其他文件 lindexi 2018-08-14 17:34:39 +0800 2 ...

  7. kuangbin带我飞QAQ 最短路

    1. poj 1502 Mathches Game 裸最短路 #include <iostream> #include <string.h> #include <cstd ...

  8. TZ_11_Spring-Boot的整合SpringMvc和MyBatis

    1.整合SpringMVC 虽然默认配置已经可以使用SpringMVC了,不过我们有时候需要进行自定义配置. 1>修改方式 通过application.yaml 此名字不需要使用@Propert ...

  9. mac 终端 常用命令,MacOS 常用终端命令大全,mac 在当前目录打开终端

    MacOS 常用终端命令大全:目录操作dircmp——比较两个目录的内容——dircmp dir1 dir2文件操作pg分页格式化显示文件内容——pg filenameod——显示非文本文件的内容—— ...

  10. Python缩进和选择

    Python缩进和选择 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这 ...