模擬題 Leetcode67 二進位制求和

2021-10-07 08:50:11 字數 1344 閱讀 6360

給你兩個二進位制字串,返回它們的和(用二進位制表示)。輸入為 非空 字串且只包含數字 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...