[算法] 剑指offer2 golang 面试题2:二进制加法

题目1:

给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。

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

示例 1:

输入: a = “11”, b = “10”
输出: “101”
示例 2:

输入: a = “1010”, b = “1011”
输出: “10101”

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/JFETK5
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路1: 模拟二进制加法

模拟二进制加法时间复杂度 O(n)

代码


func addBinary(a string, b string) string {//思路: 模拟二进制计算length := len(a)if len(b) > len(a) {length = len(b)}//构造返回resBs := make([]byte, length)//从后往前指向的指针aP, bP := len(a)-1, len(b)-1//是否进位up := 0for i := len(resBs) - 1; i >= 0; i-- {var aByte byte = '0'var bByte byte = '0'if aP >= 0 {aByte = a[aP]aP--}if bP >= 0 {bByte = b[bP]bP--}// 统计个数count1 := 0if aByte == '1' {count1++}if bByte == '1' {count1++}count1 += up//通过个数确定当前值和upif count1 == 0 {up = 0resBs[i] = '0'} else if count1 == 1 {up = 0resBs[i] = '1'} else if count1 == 2 {up = 1resBs[i] = '0'} else {up = 1resBs[i] = '1'}}//最后的upres := string(resBs)if up == 1 {res = "1" + res}return res
}

测试

[算法] 剑指offer2 golang 面试题2:二进制加法相关推荐

  1. 【剑指Offer(专项突破)】002. 二进制加法(Java实现) 详细解析

    题目: 输入两个表示二进制的字符串,计算它们的和,并以二进制字符串的形式输出.例如,输入的二进制字符串分别是"11"和"10",则输出"101&quo ...

  2. 剑指Offer——迅雷笔试题+知识点总结

    剑指Offer--迅雷笔试题+知识点总结 情景回顾 时间:2016.9.19 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:迅雷笔试 总体来说,迅雷笔试内容体量不算多,主要 ...

  3. 二叉树代码 java面试题_《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

  4. java牛客排序算法题_《剑指offer》面试题28:字符串的排列(牛客网版本) java...

    输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输入一个字符 ...

  5. 《剑指offer》面试题的Python实现

    所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...

  6. 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找

    题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...

  7. 一道剑指offer经典面试题引发的思考

    大家在拿到一道算法题的时候,都会思考些什么呢? 大家有没有想过,当有一位面试官追问你,这道题有没有什么问题,或者有没有什么更好的方法,你们的内心是怎样的呢? 可能你会瞪大了眼,一些盲目自信的同学可能会 ...

  8. 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)

    剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...

  9. 写写leetcode剑指offer2刷完一遍之后的感受

    背景 2022年5月20日大三,准备蓝桥国赛的同时顺便把剑指offer的专项提升版刷了 感受 位运算熟练了一下, 回溯法练了练(只是会熟练的调库了) 会了滑动窗口, 前缀和+哈希表快速找到符合要求的子 ...

最新文章

  1. ZYNQ AXI总线 PS与PL内部通信(用户自定义IP)
  2. [离散时间信号处理学习笔记] 8. z逆变换
  3. 追踪JVM中的本地内存
  4. MySQL的版本以及版本号
  5. Android RecyclerView 使用完全解析 体验艺术般的控件
  6. Git的工作流程简介
  7. 《看聊天记录都学不会C#?太菜了吧》(5)C# 中可以用中文名变量?
  8. 关于vector的size()的使用问题
  9. 深度学习为图片人物换装【python代码教程】
  10. 《Solution-Centric Organization》解决方案导向型组织 节选 IV
  11. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  12. Kubernetes详解(十七)——Pod存活性探针应用实战
  13. 【感悟】放开那条大腿,让我来!
  14. 【优化求解】基于matlab遗传算法求解仓库货位优化问题【含Matlab源码 1770期】
  15. (Python)裁剪人脸图片获得人脸的嘴唇区域
  16. nfc卡模式与标准模式_NFC是什么?有什么优势和劣势?
  17. python正则表达式快速入门_Python 正则表达式入门
  18. 华硕x450jn拆机_自己动手丨 轻松搞定华硕X450JN笔记本 内存扩展
  19. C++ : Hello, World! (基本输出)
  20. springboot多线程等待所有结果返回

热门文章

  1. 车载冰箱E-mark认证测试项目有哪些?
  2. 什么是纵向加密与横向隔离
  3. 数字图像处理 图像形态学处理
  4. Android开发如何定制framework层服务
  5. 【应用层】DNS协议
  6. VMware Horizon 8 2111 部署系列(八)准备虚拟机模板
  7. 【经验】转一个非常好的【SCI论文写法攻略】
  8. SAP中图文展示分摊和分配的区别
  9. java设计模式之中介者模式(Mediator)
  10. 全网最精减、安装最简单、无头疼配置的Katago教程,大小才168M,职业水平,散仙订制版