67 二進位制求和

2021-10-06 15:58:59 字數 952 閱讀 2191

二進位制求和

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

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

示例 1:

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

輸出: 「100」

示例 2:

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

輸出: 「10101」

方法一:

使用內建函式的簡單方法:

將 a 和 b 轉換為十進位制整數。

求和。將求和結果轉換為二進位制整數。

parseint函式是將字串轉換為10進製整數。假設 x=parseint(a,b)a是要轉換的字串,b表示a是乙個幾進製數。則意思是將 b進製的a轉換為 10進製的整數x。

class

solution

}

方法二:

整體思路是將兩個字串較短的用 00 補齊,使得兩個字串長度一致,然後從末尾進行遍歷計算,得到最終結果。

本題解中大致思路與上述一致,但由於字串操作原因,不確定最後的結果是否會多出一位進製,所以會有 2 種處理方式:

第一種,在進行計算時直接拼接字串,會得到乙個反向字元,需要最後再進行翻轉

第二種,按照位置給結果字元賦值,最後如果有進製,則在前方進行字串拼接新增進製

時間複雜度:o(n)

加上單引號的:『0』代表乙個字元;

s.charat(i)方法:返回指定索引位置的字元;

s.charat(i)-『0』:兩個字元相減實際上是ascii碼對應的數相減;

class

solution

ans.

(ca ==

1? ca :"")

;return ans.

reverse()

.tostring()

;}}

67 二進位制求和

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

67 二進位制求和

雖然自己也寫對了,但是 非常不簡潔,還是答案的 簡潔,應該學習下 答案 class solution index 0 找到第乙個不為0的位置 while res index 0 index len index 如果結果為0,就直接返回0 if index len 1 return 0 return ...

67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 class solution def addbinary self,a str,b str str...