力扣67 二進位制求和(逐位運算 位運算)

2021-10-05 03:36:40 字數 1223 閱讀 8076

力扣67. 二進位制求和

給你兩個二進位制字串,返回它們的和(用二進位制表示)。

輸入為 非空 字串且只包含數字 1 和 0。

示例 1:

輸入: a = "11", b = "1"

輸出: "100"

示例 2:

輸入: a = "1010", b = "1011"

輸出: "10101"

每個字串僅由字元 '0' 或 '1' 組成。

1 <= a.length, b.length <= 10^4

字串如果不是 "0" ,就都不含前導零。

無需把數字轉換成十進位制,直接逐位計算和與進製即可。

複雜度分析

時間複雜度:o(max(n,m)),其中 n 和 m 是輸入字串 a 和 b 的長度。

空間複雜度:o(max(n,m)),儲存求和結果。

#include "stdafx.h"

#includeusing namespace std;

class solution

return result;

}};int main()

效能分析:只能計算有限位數,sum的值有限

複雜度分析

時間複雜度:o(n+m),其中 n 和 m 是輸入字串 a 和 b 的長度。

空間複雜度:o(max(n,m)),儲存計算結果。

#include "stdafx.h"

#includeusing namespace std;

class solution

return result;

} string addbinarywei(string a, string b)

for (int i = lenb; i >= 0; i--)

//加法位運算

long long sum = suma^sumb;

int carry = (suma&sumb) << 1;

while (carry != 0)

//整型轉換成字串

if (sum == 0)return"0";

string result;

int j = 0;

while (sum > 0)

return result;

}};int main()

力扣題解 67 二進位制求和

67.二進位制求和 給你兩個二進位制字串,返回它們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 解題方案 思路整體思路是將兩個字串較短的用 000 補齊,使得兩個字串長度一致,然後...

二進位制求和(力扣第67題)

題目 給你兩個二進位制字串,返回它們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例1 輸入 a 11 b 1 輸出 100 示例2 輸入 a 1010 b 1011 輸出 10101 分析 其實就是兩個二進位制數的加法運算,兩個二進位制數相加,首先設定乙個進製識別符號flag,初始值設...

二進位制求和(力扣第67題)

題目 給你兩個二進位制字串,返回它們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例1 輸入 a 11 b 1 輸出 100 示例2 輸入 a 1010 b 1011 輸出 10101 分析 其實就是兩個二進位制數的加法運算,兩個二進位制數相加,首先設定乙個進製識別符號flag,初始值設...