Leetcode刷題指南 67二進位制求和

2021-10-07 06:55:33 字數 873 閱讀 3161

2)思路

3)**

要求:給你兩個二進位制字串,返回它們的和(用二進位制表示)。

輸入為 非空 字串且只包含數字 1 和 0。

樣例:示例 1:

輸入: a = 「11」, b = 「1」

輸出: 「100」

示例 2:

輸入: a = 「1010」, b = 「1011」

輸出: 「10101」

二進位制求和,滿二進一

首先讓兩個字串等長,若不等長,在短的字串前補零,否則之後的操作會超出索引。

然後從後到前遍歷所有的位數,同位相加,這裡有乙個點,用的是字元相加,利用 ascii 碼,字元在內部都用數字表示,我們不需要知道具體數值,但可知 『0』-『0』 = 0, 『0』+1=『1』,以此類推 。字元的加減,大小比較,實際上都是內部數字的加減,大小比較

判斷相加後的字元,若大於等於字元 『2』『2』,下一位需要進一

第 00 位數的相加在這裡是單獨處理的,因為它可能涉及到字元的插入(即是否需要在最前面加一位數 『1』『1』

class

solution

while

(al > bl)

for(

int j = a.

size()

-1; j >0;

-- j)

//從後到前遍歷所有的位數,同位相加

} a[0]

= a[0]

-'0'

+ b[0]

;//將ab的第0位相加

if(a[0]

>=

'2')

//若大於等於2,需要進一

return a;}}

;

LeetCode刷題筆記67

題目 二進位制求和。給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 我的答案 思路 由於最終長度不確定,且需要一位一位的計算更改,所以使用了str...

LeetCode刷題之路 67 二進位制求和

給你兩個二進位制字串,返回它們的和 用二進位制表示 輸入為 非空 字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 每個字串僅由字元 0 或 1 組成。1 a.length,b.length 10 4 字串如果...

LeetCode刷題指南 貪心演算法

45.跳躍遊戲 ii class solution maxl nextmax return 0 134.加油站 第一種解法 比較容易理解,但是效率比較低 class solution return rest 0 1 start 621.任務排程器 給定乙個用字元陣列表示的 cpu 需要執行的任務列表...