• LeetCode二进制求和Swift


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

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

    示例 1:

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


    示例 2:

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

    提示:

    每个字符串仅由字符 '0' 或 '1' 组成。
    1 <= a.length, b.length <= 10^4
    字符串如果不是 "0" ,就都不含前导零。

    思路:(加一题型进阶版 https://www.cnblogs.com/huangzs/p/14084324.html

    1.最大循环次数

    2.字符串反转

    3.标志位是否进1

    4.最后首位插1

    class Solution {
        func addBinary(_ a: String, _ b: String) -> String {
            let length = max(a.count, b.count) , aStr = String(a.reversed()) , bStr = String(b.reversed())
            var flag = 0 , sum = 0 , result = ""
            for i in (0..<length) {
                let A:Character = a.count > i ? aStr[aStr.index(aStr.startIndex, offsetBy: i)] : "0"
                let B:Character = b.count > i ? bStr[bStr.index(bStr.startIndex, offsetBy: i)] : "0"
                sum = A.hexDigitValue! + B.hexDigitValue! + flag
                flag = sum / 2
                result = String(sum % 2) + result
            }
            if flag == 1 { result = "1" + result }
            return result
        }
    }
  • 相关阅读:
    oo第二次总结
    oo第一次总结
    OO最后一次博客儿
    OO作业总结第三弹
    OO作业总结第二弹
    初学面向对象
    hi🎈
    散列函数及其应用
    结对项目作业
    构建之法第四,第十四章读书有感 (另补第十七章)
  • 原文地址:https://www.cnblogs.com/huangzs/p/14097903.html
Copyright © 2020-2023  润新知