Leetcode67: 二进制求和

题目

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 1 和 0。

示例 1:

输入: a = "11", b = "1"
输出: "100"

示例 2:

输入: a = "1010", b = "1011"
输出: "10101"

Swift解法

class Solution {
        func addBinary(_ a: String, _ b: String) -> String {
            let zero = Character("0")
            let one = Character("1")
            let a = a.map({$0})
            let b = b.map({$0})
            let count = max(a.count, b.count)
            var character = [Character](repeating: zero, count: count)
            var i = 0
            var flag: UInt8 = 0
            while i <= count - 1 {
                let aindex = a.count - i - 1
                let bindex = b.count - i - 1
                let index = count - i - 1
                var sum = flag
                if aindex >= 0 && a[aindex] == one { sum += 1 }
                if bindex >= 0 && b[bindex] == one { sum += 1 }
                character[index] = (sum % 2 > 0) ? one : zero
                flag = (sum >= 2) ? 1 : 0
                i += 1
            }
            if flag == 1 {
                character.insert(one, at: 0)
            }
            return String(character)
        }
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-binary

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • leetcode刷题记录本文记录一下leetcode刷题记录,记录一下自己的解法和心得。 LeetCode Two...
    EarthChen阅读 3,529评论 0 6
  • 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入...
    FiveZM阅读 776评论 0 0
  • Leetcode 67:Add Binary(二进制求和) (python、java) 公众号:爱写bug Giv...
    爱写Bug阅读 160评论 0 1
  • 简述 极客时间算法40讲中所出现的leetcode算法题 题目 【链表】reverse-linked-list(反...
    BestbpF阅读 4,525评论 0 4
  • 2017年6月24日,又一个人听着歌回宿舍,长年在外的我没有感觉到对家的不舍,可能内心里充满了孤独,我还是没忍住想...
    忠厚的老实人阅读 261评论 0 0