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