1. 程式人生 > >leetcode67---Add Binary(二進位制加法)

leetcode67---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) {
        string sum = "";  
        int i = a.length() - 1
; int j = b.length() - 1; int carry = 0;//儲存進位 while (i >= 0 || j >= 0 || carry > 0) { int v = carry;//首先把上次的進位賦給該位的和 if (i >= 0) v += a[i] - '0'; //c-‘0’將字元數c轉換為整型數 if (j >= 0) v += b[j] - '0'; //二進位制基數為2,每次將同位的數字相加後,除以基數就是進位
carry = v / 2; //若v是偶數則v&1=0,若v是奇數則v&1=1 //二進位制每位上的數要麼是0要麼是1則可使用v&1 //即如果v=2,則進一位.該位為0 sum = to_string(v&1) + sum; i--; j--; } return sum; } };

相關推薦

leetcode67---Add Binary(二進位制加法)

問題描述: Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 問題求解: 二進位

Leetcode 67. Add Binary 二進位制加法 解題報告

1 解題思想 給定以字串為形式表達的一個二進位制數,需要求加法後的值。 這道題是一個弱化版的高精度加法,整體來說和之前做題的方式很類似,注意加法結果可能比原來長一位 2 原題 Given two binary strings, return their

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 addBi

Add Binary:二進位制加法

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1"

leetCode 67.Add Binary (二進位制加法) 解題思路和方法

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" R

67. Add Binary 二進位制轉換10進位制加法再轉換回去

  Given two binary strings, return their sum (also a binary string). The input strings are both non-empty and contains only chara

LeetCode 67.Add Binary (二進位制求和)

題目描述: 給定兩個二進位制字串,返回他們的和(用二進位制表示)。 輸入為非空字串且只包含數字 1 和 0。 示例 1: 輸入: a = "11", b = "1" 輸出: "100" 示例 2: 輸入: a = "1010", b = "1011" 輸出:

Add Binary 二進位制求和

給定兩個二進位制字串,返回他們的和(用二進位制表示)。 輸入為非空字串且只包含數字 1 和 0。 示例 1: 輸入: a = "11", b = "1" 輸出: "100" 示例 2: 輸入: a = "1010", b = "1011" 輸出: "10101"

Leetcode 67 Add Binary 二進位制

題目描述:Given two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".用兩個string表示大數,返回他們的和(也用stri

Add Binary 二進位制相加

class Solution { public:     string addBinary(string a, string b) {          size_t n=a.size()>b.size()?a.size():b.size();          int carry=0;        

LintCode Add Binary 二進位制求和

給定兩個二進位制字串,返回他們的和(用二進位制表示)。 Given two binary strings, return their sum (also a binary string). 樣例 a = 11 b = 1 返回 100 public class Sol

Leetcode:Add Binary 二進位制相加

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 思路同十進位制的大數相加。程式碼如下: cla

Add Binary 二進位制相加 @LeetCode

題目:二進位制相加思路:處理好carry的情況package Level2; /** * Add Binary * * Given two binary strings, return their sum (also a binary string). For ex

(java)leetcode67 二進位制數求和 (Add Binary

題目描述: 給定兩個二進位制字串,返回他們的和(用二進位制表示)。 輸入為非空字串且只包含數字 1 和 0。 示例1: 輸入: a = "11", b = "1" 輸出: "100" 示例2: 輸入: a = "1010", b = "101

【LeetCode-面試演算法經典-Java實現】【067-Add Binary二進位制加法)】

原題   Given two binary strings, return their sum (also a binary string).   For example,   a

二進位制加法的實現(字串形式) Add Binary

題目:Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 思路:二進位制加法和普通加法的思路沒什麼差

[leetcode]67. Add Binary 二進制加法

out har strings empty add str leetcode lee binary Given two binary strings, return their sum (also a binary string). The input strings ar

C#LeetCode刷題之#67-二進位制求和(Add Binary

問題 給定兩個二進位制字串,返回他們的和(用二進位制表示)。 輸入為非空字串且只包含數字 1 和 0。 輸入: a = "11", b = "1" 輸出: "100" 輸入: a = "

67. Add Binary二進位制求和)

Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" R

LeetCode 67 Add Binary二進位制相加)(*)

翻譯 給定兩個二進位制字串,返回它們的和(也是二進位制字串)。 例如, a = "11" b = "1" 返回 "100". 原文 Given two binary strings, ret