二進位制求和

2021-10-25 05:31:34 字數 750 閱讀 6114

1.題目描述:給你兩個二進位制字串,返回它們的和(用二進位制表示)。

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

示例 1:

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

輸出: 「100」

示例 2:

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

輸出: 「10101」

每個字串僅由字元 『0』 或 『1』 組成。

1 <= a.length, b.length <= 10^4

字串如果不是 「0」 ,就都不含前導零。

2.思路:首先讓兩個字串等長,若不等長,在短的字串前補零,否則之後的操作會超出索引。然後從後到前遍歷所有的位數,同位相加,這裡有乙個點,用的是字元相加,利用 ascii 碼,字元在內部都用數字表示,我們不需要知道具體數值,但可知 『0』-『0』 = 0, 『0』+1=『1』,以此類推 。字元的加減,大小比較,實際上都是內部數字的加減,大小比較判斷相加後的字元,若大於等於字元 『2』,下一位需要進一。第 0 位數的相加在這裡是單獨處理的,因為它可能涉及到字元的插入(即是否需要在最前面加一位數 『1』。

3.code:

class solution

while(al > bl)

for(int j = a.size() - 1; j > 0; – j)

}a[0] = a[0] - 『0』 + b[0];

if(a[0] >= 『2』)

return a;}};

結果:

二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 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 第乙個位子若產生進製需要...