給你兩個二進位制字串,返回它們的和(用二進位制表示)。輸入為 非空 字串且只包含數字 1 和 0。
示例 1:
輸入: a = 「11」, b = 「1」
輸出: 「100」
示例 2:
輸入: a = 「1010」, b = 「1011」
輸出: 「10101」
語言:c++
外部依賴:單元測試庫-gtest
規範:需要自己寫單元測試類,來進行提交前的測試,減少重複工作,並且對非法輸入進行過濾
詳解:邏輯就是從字串的最後一位開始遍歷,將兩個字串取出來的字元以及上乙個進製進行相加,獲得下乙個進製以及當前下標的資料。如果此時的下標超過了其中乙個字串的長度,那就設當前字串下標上的取得的資料為0,當下標超過兩個字串的最長位數,停止迴圈。
#include
#include
#include
#include
#include
#include
using
namespace std;
namespace slution
else
if(cnt<=blen)
else
char tmp =
(tmpa+tmpb+c)%2
+'0'
; c =
(tmpa+tmpb+c)/2
; result = tmp+result;
cnt++;}
//如果最後的進製是1 那麼在字串前後新增1
if(c==1)
result =
"1"+ result;
return result;}}
;}
#include
#include
#include
"solution.h"
using
namespace slution;
//單元測試
solution slu;
test
(slutiontest, handlenormalinput)
test
(slutiontest, handleextremeinput)
intmain
(int argc,
char
*ar**)
執行結果:
通過顯示詳情
執行用時:0 ms, 在所有 c++ 提交中擊敗了100.00%的使用者
記憶體消耗:7.1 mb, 在所有 c++ 提交中擊敗了100.00%的使用者
LeetCode67題 二進位制求和
67.二進位制求和 class solution def addbinary self,a str,b str str if a 0 and b 0 return 0 else x 0for i in range 1,len a 1 x int a i pow 2,i 1 for i in rang...
Leetcode 67 二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 class solution if blen 0 carry sum 2 錯誤的 if sum 2...
leetcode 67 二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 新鮮現做 幸福coding class solution object def addbinary se...