Day 13 - Add Binary

大家好,我是毛毛。ヾ(´∀ ˋ)ノ
废话不多说开始今天的解题Day~


67. Add Binary

Question

Given two binary strings a and b, return their sum as a binary string.


Example

Example1

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

Example2

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

Constraints

  • 1 <= a.length, b.length <= 10^4
  • a and b consist only of '0' or '1' characters.
  • Each string does not contain leading zeros except for the zero itself.

解题

题目

首先先简单的翻译一下题目
给两个二进制的数字字串,回传两者相加後的值。

Think

作法大致上是这样

  • 直接将两个数都转成int并相加,再去判断相加後的每一位数字有没有大於2,有的话就代表要进位,下一个位数的值再判断有没有大於2之前要先加上进位的值。
  • 最後,如果到第一位数了,还有需要进位的话,就在最前面再补上一个1,就可以回传了。

Code

Python

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        flag_add = False
        int_a = int(a)
        int_b = int(b)
        
        sum = int_a + int_b
        sum = list(str(sum))
        
        for index in range(len(sum)-1, -1, -1):
            if flag_add:
                sum[index] = str(int(sum[index]) + 1) 
                flag_add = False
                
            if int(sum[index]) >= 2:
                sum[index] = str(int(sum[index]) - 2) 
                flag_add = True
                if index == 0:
                    sum.insert(0, "1")

        sum = str(sum).replace("[", "").replace("'", "").replace(",", "").replace("]", "").replace(" ", "")
        return sum

C


Result

  • Python

  • C

大家明天见/images/emoticon/emoticon29.gif


<<:  [铁人赛 Day13] 来读 Hooks FAQ 文件吧!- Effect dependencies 太常改变,可以做些什麽吗?

>>:  电子书阅读器上的浏览器 [Day28] 上架到 F-Droid

[Day 01] 前言 — 是谁杀了模型?

缘起 不知道大家是否有这样的经验,买了一本标榜手把手教学的书,随书附赠的 GitHub 页面上有与每...

【C++】计算程序的执行时间

我们来看到C++要如何计算程序码的执行时间呢 ~ 学习目标: 计算程序码执行时间的实务 学习难度: ...

Day 30 Docker 的使用安全

若要长期稳定的使用服务,了解其安全性是必要的。毕竟世上没有 100% 安全的软硬体,总是会存在一些漏...

存取方法

终於度过前面枯燥乏味的内容了...(但它们都很重要,也与今天的主题有关) 今天要来进入重点项目 我们...

DAY20-JAVA的介面

介面 介面(interface)是JAVA所提供的另一项重要功能,它的结构和抽象类别非常相似。介面本...