困難度:簡單
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 第乙個位子若產生進製需要...