二進位操作: 兩個二進位字串相加 Add Binary_Leetcode #67

閱讀時間約 3 分鐘

題目敘述 Add Binary

題目給定兩個二進位字串a, b

請計算a+b二進位加法的答案,最後以字串的形式輸出。


測試範例

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

約束條件

Constraints:

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

字串a 和 字串b的長度都介於 1個 ~ 一萬個字元。

  • a and b consist only of '0' or '1' characters.

字串a 和 字串b只會包含'0'或'1'

  • Each string does not contain leading zeros except for the zero itself.

前面沒有無意義的leading zero補零


演算法 模擬二進位加法


二進位加法過程

二進位加法過程


模擬二進位加法,逢二就進位,從最低位元逐項累加到最高位元

0 + 0 = 0

0 + 1 = 1

1 + 0 = 0

1 + 1 = 0 ,同時傳遞進位1給左側的高位元


最後,以字串的形式輸出答案。


程式碼 模擬二進位加法

class Solution:
def addBinary(self, a: str, b: str) -> str:

result = ''

a = list(map(int, a))
b = list(map(int, b))

carry = 0
while a or b or carry:
digit_sum = 0

if a: digit_sum += a.pop()
if b: digit_sum += b.pop()
digit_sum += carry

carry, digit_sum = digit_sum // 2, digit_sum % 2

result = str(digit_sum) + result

return result

複雜度分析

時間複雜度:O(m+n)

總計算時間依賴於長度較長的那個字串,依然是線性時間演算法。


空間複雜度: O(m+n)

輸出總長度也依賴長度較長的那個字串,依然是線性空間演算法。


Reference

[1] Add Binary - LeetCode

81會員
417內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
給定木板的長度和切割點位置,找到最小總切割成本。透過DP動態規劃和區間DP框架,定義DP狀態並推導出最小切割成本的遞迴關係式。複雜度分析為時間複雜度O(n^3)和空間複雜度O(n^2)。關鍵知識點在於挖掘切割問條的共通模式,透過範例和圖解輔助思考。
給定一個9x9的輸入陣列代表數獨題目已經 部分作答 的狀態, 請驗證已經作答的部分是否為合法的Sudoku的輸入。 註: 合法的Sudoku輸入必須滿足這些規則 1~9每一直排恰好出現一次。 1~9每一橫排恰好出現一次。 1~9在3x3的小方陣裏恰好出現一次。
題目敘述 Minimum Deletions to Make String Balanced 給定一個只會有包含'a'b或'b'的輸入字串s。 每次操作可以任選一個字元刪除。 請問最少需要多少次操作,才會使得所有的'b'都在'a'後面? 測試範例 Example 1: Input: s
題目敘述: Reverse Bits 給定一個32bit的整數,請逆序翻轉其二進位表達式,輸出翻轉過後的數字。 例如輸入是二進位1010111 逆序翻轉後是 1110101,對應的十進位數值是117 測試範例 Example 1: Input: n = 00000010100101000
題目敘述 Count Number of Teams 給定一個輸入陣列rating,裡面代表每位成員的評分 挑選三位成員,對應到三個index i, j, k 且 i < j < k 如果rating[i] < rating[j] < rating[k] ,則此三人可以組成一隊。 或者ra
題目敘述: Minimum Cost to Convert String I 給定字元轉換映射表original, changes和對硬的成本陣列cost。 請問字串source轉換到字串destination的最小成本是多少? 如果無解,請返回-1 如果有解,請返回整體的轉換最小成本。
給定木板的長度和切割點位置,找到最小總切割成本。透過DP動態規劃和區間DP框架,定義DP狀態並推導出最小切割成本的遞迴關係式。複雜度分析為時間複雜度O(n^3)和空間複雜度O(n^2)。關鍵知識點在於挖掘切割問條的共通模式,透過範例和圖解輔助思考。
給定一個9x9的輸入陣列代表數獨題目已經 部分作答 的狀態, 請驗證已經作答的部分是否為合法的Sudoku的輸入。 註: 合法的Sudoku輸入必須滿足這些規則 1~9每一直排恰好出現一次。 1~9每一橫排恰好出現一次。 1~9在3x3的小方陣裏恰好出現一次。
題目敘述 Minimum Deletions to Make String Balanced 給定一個只會有包含'a'b或'b'的輸入字串s。 每次操作可以任選一個字元刪除。 請問最少需要多少次操作,才會使得所有的'b'都在'a'後面? 測試範例 Example 1: Input: s
題目敘述: Reverse Bits 給定一個32bit的整數,請逆序翻轉其二進位表達式,輸出翻轉過後的數字。 例如輸入是二進位1010111 逆序翻轉後是 1110101,對應的十進位數值是117 測試範例 Example 1: Input: n = 00000010100101000
題目敘述 Count Number of Teams 給定一個輸入陣列rating,裡面代表每位成員的評分 挑選三位成員,對應到三個index i, j, k 且 i < j < k 如果rating[i] < rating[j] < rating[k] ,則此三人可以組成一隊。 或者ra
題目敘述: Minimum Cost to Convert String I 給定字元轉換映射表original, changes和對硬的成本陣列cost。 請問字串source轉換到字串destination的最小成本是多少? 如果無解,請返回-1 如果有解,請返回整體的轉換最小成本。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
塵封的日子裡 消逝了多少朝陽 只剩斑駁的殘陽 灑在凋零的屋簷 推開那道門,一具枯槁的身軀正安睡在破爛的床舖上。房間裡散發出一股髒亂和腐朽的氣息,宛如死亡的氛圍。望著那蒼老的面容,我們難以想像她經歷過的掙扎和絕望。 生的最後一點希望 就這麼黯淡無光 獨自倖離群竄 無
Thumbnail
前言 話說繼美光退出超頻記憶體馬甲散熱片條市場好一陣子以後,於今年八月份推出了Pro系列產品 而產品線就包含了隨插即用的記憶體模組以及高速的固態硬碟SSD搶攻專業級電腦主機裝機市場 前一陣子也入手過一組16GB x2 kit 來玩、玩過之後對它的效能跟方便的隨插即用讚不絕口...
Thumbnail
從零開始學習投資(一):最重要的是投資心態! 第一篇文章中提到在投資開始錢該怎麼建立好心態,那麼心理建設完了到底該怎麼入場,入場後在過程中要注意那些事情,以及要怎麼持續精進自己好讓自己在投資這條路上走的更長遠,會是本文的焦點,文中會附上經過篩選適合初學者的我自己閱讀過的書籍以及常用的網站,供各位參
如果真的要為易經找出一個哲學性定位,個人認為那或許是,比起分析世界,更在意於探討人與世界之間的關係與位置,這是深藏內部的涵義
Thumbnail
Mengrai建立之蘭納王國控制泰國清邁一帶,勢力一度達到中國西雙版納傣族自治州,與拓地西南的元朝因爭奪今景洪市交惡,遭元朝於1301年遣劉深率大軍征討被其稱為「八百媳婦國」的蘭納,但大軍所及,軍需徵調徭役導致雲南少數民族不滿,紛起聯合反抗,加上不適熱帶叢林,於1302年蒙古兵鋒未至蘭納便被迫撤軍。
Thumbnail
很多新人會問,一進的時候有爸爸牽手走紅毯跟花童灑花,那婚禮二次進場到底還能做些什麼呢?超怕冷場的啦~別擔心,OKOH來告訴你,不擔心冷場的幾種二進方式,快看過來吧
Thumbnail
父母要求,男女雙方分開辦,女方辦訂婚+歸寧,男方則是結婚。 婚宴場地由我爸媽決定,最後選擇台南商務會館,除了宴客,會館也提供同一場地的舞台給我們進行儀式,並準備奉茶等瑣事。 我們的媒人婆請專業媒人婆來,給予需求和時間後,由他來排行程
Thumbnail
書名:選三哲學    聚焦3件事,解決工作生活兩難,搞定你的超載人生 作者:蘭蒂‧祖克柏 書版社:遠流     蘭蒂‧祖克柏說,人生有五大面向,工作、睡眠、家庭、運動和朋友。 照顧自己的健康,包含身體及心理的適應力,好的情緒表達、專注、壓力管理以及有益健康的飲食,這些,蘭蒂都放在「運動」面向裡,這樣
Thumbnail
​ 走一趟新北市新莊區中正路,這一條有新莊廟街之稱街道。彷彿時間流盪走進清朝時光隧道內。如果說是新莊區最密集廟宇駐利街道,到不如說是先民遺跡之地。這一條廟街廟宇很多,古蹟也不少。這篇來介紹新北市定古蹟文昌祠。 新北市新莊區文昌祠相關資訊: ​​ ​​ 新北市新莊區碧江街20號 ​​ ​​ 0
心悅生醫,是我第一次買生技股。以目前來說他沒有營收,就沒有EPS,所以所謂的財報變成了沒有參考性。 唯一可以看到只有他在產品的研究進度,而這也是我看他未來的可能性。 其實生技不是我的拿手,講的白一點,我始終不得其門而入,就像一直卡在新手村的人,而且還沒有看到前方的路。 心悅生醫的產品,我覺得可以分三
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
塵封的日子裡 消逝了多少朝陽 只剩斑駁的殘陽 灑在凋零的屋簷 推開那道門,一具枯槁的身軀正安睡在破爛的床舖上。房間裡散發出一股髒亂和腐朽的氣息,宛如死亡的氛圍。望著那蒼老的面容,我們難以想像她經歷過的掙扎和絕望。 生的最後一點希望 就這麼黯淡無光 獨自倖離群竄 無
Thumbnail
前言 話說繼美光退出超頻記憶體馬甲散熱片條市場好一陣子以後,於今年八月份推出了Pro系列產品 而產品線就包含了隨插即用的記憶體模組以及高速的固態硬碟SSD搶攻專業級電腦主機裝機市場 前一陣子也入手過一組16GB x2 kit 來玩、玩過之後對它的效能跟方便的隨插即用讚不絕口...
Thumbnail
從零開始學習投資(一):最重要的是投資心態! 第一篇文章中提到在投資開始錢該怎麼建立好心態,那麼心理建設完了到底該怎麼入場,入場後在過程中要注意那些事情,以及要怎麼持續精進自己好讓自己在投資這條路上走的更長遠,會是本文的焦點,文中會附上經過篩選適合初學者的我自己閱讀過的書籍以及常用的網站,供各位參
如果真的要為易經找出一個哲學性定位,個人認為那或許是,比起分析世界,更在意於探討人與世界之間的關係與位置,這是深藏內部的涵義
Thumbnail
Mengrai建立之蘭納王國控制泰國清邁一帶,勢力一度達到中國西雙版納傣族自治州,與拓地西南的元朝因爭奪今景洪市交惡,遭元朝於1301年遣劉深率大軍征討被其稱為「八百媳婦國」的蘭納,但大軍所及,軍需徵調徭役導致雲南少數民族不滿,紛起聯合反抗,加上不適熱帶叢林,於1302年蒙古兵鋒未至蘭納便被迫撤軍。
Thumbnail
很多新人會問,一進的時候有爸爸牽手走紅毯跟花童灑花,那婚禮二次進場到底還能做些什麼呢?超怕冷場的啦~別擔心,OKOH來告訴你,不擔心冷場的幾種二進方式,快看過來吧
Thumbnail
父母要求,男女雙方分開辦,女方辦訂婚+歸寧,男方則是結婚。 婚宴場地由我爸媽決定,最後選擇台南商務會館,除了宴客,會館也提供同一場地的舞台給我們進行儀式,並準備奉茶等瑣事。 我們的媒人婆請專業媒人婆來,給予需求和時間後,由他來排行程
Thumbnail
書名:選三哲學    聚焦3件事,解決工作生活兩難,搞定你的超載人生 作者:蘭蒂‧祖克柏 書版社:遠流     蘭蒂‧祖克柏說,人生有五大面向,工作、睡眠、家庭、運動和朋友。 照顧自己的健康,包含身體及心理的適應力,好的情緒表達、專注、壓力管理以及有益健康的飲食,這些,蘭蒂都放在「運動」面向裡,這樣
Thumbnail
​ 走一趟新北市新莊區中正路,這一條有新莊廟街之稱街道。彷彿時間流盪走進清朝時光隧道內。如果說是新莊區最密集廟宇駐利街道,到不如說是先民遺跡之地。這一條廟街廟宇很多,古蹟也不少。這篇來介紹新北市定古蹟文昌祠。 新北市新莊區文昌祠相關資訊: ​​ ​​ 新北市新莊區碧江街20號 ​​ ​​ 0
心悅生醫,是我第一次買生技股。以目前來說他沒有營收,就沒有EPS,所以所謂的財報變成了沒有參考性。 唯一可以看到只有他在產品的研究進度,而這也是我看他未來的可能性。 其實生技不是我的拿手,講的白一點,我始終不得其門而入,就像一直卡在新手村的人,而且還沒有看到前方的路。 心悅生醫的產品,我覺得可以分三