力扣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,初始值設...