当前位置: 首页 > news >正文

LeetCode 面试经典150题 67.二进制求和

415.字符串相加  思路一模一样

题目:给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。

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

思路:从右开始遍历两个字符串,因为右边是低位先运算。如果其中一个字符串遍历完就补0。

while (i >= 0 || j >= 0 || carry != 0)  中 carry != 0 主要是解决最后有进位的情况,特别注意!

最后记得把字符串反转,因为先把低位运算结果存储起来了。

代码

class Solution {public String addBinary(String a, String b) {StringBuilder res =  new StringBuilder(); // 要返回的结果int i = a.length() - 1;int j = b.length() - 1;int carry  = 0; // 进位while (i >= 0 || j >= 0 || carry != 0) {int digitA = i >= 0 ? a.charAt(i) - '0' : 0;  // 当前a的取值int digitB = j >= 0 ? b.charAt(j) - '0' : 0;  // 当前b的取值int sum = digitA + digitB + carry;  // 当前位置相加的结果carry = sum >= 2 ? 1 : 0;sum = sum % 2;res.append(sum);i--;j--;}return res.reverse().toString(); // 把结果反转并返回}
}

性能

时间复杂度O(max(M,N)M,N分别是字符串a b的长度)

空间复杂度O(1)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • keil的debug功能
  • shell脚本定时任务通知到钉钉
  • 学习threejs,绘制二维线
  • vue2项目实现国际化(若依框架示例)
  • Java 全栈开发中的最佳实践:从前端到后端的完整流程
  • Swing模拟银行柜台系统
  • Dify 中的讯飞星火平台工具源码分析
  • 【嵌入式硬件】续流二极管
  • 流量特征随机ua修改
  • Python 学习之虚拟环境
  • 一元运算符(自增自减)
  • 力扣P1706全排列问题 很好的引入暴力 递归 回溯 dfs
  • Docker 的安装部署与基本使用
  • 使用 from __future__ import annotations 语句来允许在类型注释中使用尚未定义的类名
  • 用 Pygame 实现一个乒乓球游戏
  • 【mysql】环境安装、服务启动、密码设置
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Apache Zeppelin在Apache Trafodion上的可视化
  • go语言学习初探(一)
  • idea + plantuml 画流程图
  • Javascript Math对象和Date对象常用方法详解
  • Js基础——数据类型之Null和Undefined
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Spring框架之我见(三)——IOC、AOP
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 模型微调
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端_面试
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 用 Swift 编写面向协议的视图
  • 用Visual Studio开发以太坊智能合约
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #include<初见C语言之指针(5)>
  • $().each和$.each的区别
  • (11)MATLAB PCA+SVM 人脸识别
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (C++20) consteval立即函数
  • (分类)KNN算法- 参数调优
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)视频码率,帧率和分辨率的联系与区别
  • (轉貼) UML中文FAQ (OO) (UML)
  • .java 9 找不到符号_java找不到符号
  • .NET Core Web APi类库如何内嵌运行?
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET分布式缓存Memcached从入门到实战