17 67 二進位制求和

2021-10-07 10:34:39 字數 1097 閱讀 1553

困難度:簡單

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" ,就都不含前導零。

題目較簡單,兩種思路。

第一種思路是 將 string 轉為 int 。在求出和 在轉為string (還要涉及到二進位制和十進位制的轉換) 有較大的侷限性

超i出範圍大小 string 可能太大

效率低下 時間太長

所以 超出時間限制了

第二種 模擬二進位制加法

class

solution

int length = b.

size()

;// 左對齊

reverse

(a.begin()

, a.

end())

;reverse

(b.begin()

, b.

end())

; string ans ="";

// 進製標誌

int carry =0;

for(

int i =

0; i < length; i++

)// a剩下的 和上面一樣 不過沒有 b

for(

int j = length; j < a.

size()

; j++

)// 若還有進製

if(carry)

ans +

='1'

;reverse

(ans.

begin()

, ans.

end())

;return ans;}}

;

二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 1 使用jdk進製轉化 1,第一時間想到使用jdk自帶方法,將給定的二進位制數轉化為十進位制 2,...

二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 最直觀的解法 public string addbinary string a,string b ...

二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。str儲存了所有a b的累加值。for int k str.length 1 k 0 k 在累加過程中會出現值為3的位子,則將本位子置1,然後進1 if str.charat k 3 第乙個位子若產生進製需要...