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

embedded/2024/9/23 22:06:32/

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)


http://www.ppmy.cn/embedded/115782.html

相关文章

Jsonpath - 数据中快速查找和提取的强大工具

JSON(JavaScript Object Notation)在现代应用程序中广泛使用,但是如何在复杂的JSON数据中 查找和提取所需的信息呢? JSONPath是一种功能强大的查询语言,可以通过简单的表达式来快速准确地定位和提取JSON数据。本文将介…

乐观锁、悲观锁及死锁

乐观锁、悲观锁 1.概念 悲观锁(悲观锁定):具有强烈的独占和排他特性。在整个执行过程中,将处于锁定状态。悲观锁在持有数据的时候总会把资源或者数据锁住,这样其他线程想要请求这个资源的时候就会阻塞,直到等到悲观锁把资源释放为…

CleanClip --- 为Mac用户打造的智能剪贴板管理利器

CleanClip是一款专为Mac用户设计的强大剪贴板管理工具,旨在提升用户的工作效率和数据管理体验。它通过智能化的剪贴板内容管理,实现了Mac系统与用户操作之间的无缝衔接。CleanClip支持多种连接方式,包括系统级的快捷操作和自定义快捷键&#…

【Kubernetes】常见面试题汇总(二十三)

目录 69.考虑一家拥有分布式系统的跨国公司,拥有大量数据中心,虚拟机和许多从事各种任务的员工。您认为这样公司如何以与 Kubernetes 一致的方式管理所有任务? 70.考虑一种情况,即公司希望通过维持最低成本来提高其效率和技术运营…

基于python+django+vue的影视推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的影…

【软件工程】可行性研究

一、目的 二、任务 三、步骤 四、结果:可行性研究报告 例题 选择题

计算机信息系统安全保护等级

计算机信息系统安全保护等级划分准则是我国关于计算机信息系统安全保护的重要标准,它规定了计算机信息系统安全保护能力的五个等级。这一准则由国家公安部提出并组织制定,国家质量技术监督局发布,并于2001年1月1日正式实施。以下是关于这五个…

力扣72-编辑距离(Java详细题解)

题目链接:力扣72-编辑距离 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5.如果没有ac打印dp数组 利于debug。 每一个dp…