【技巧】Leetcode 67. 二进制求和【简单】

二进制求和

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

示例 1:

输入:a = “11”, b = “1”
输出:“100”

示例 2:

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

解题思路

逐位相加再进位:

  • 从字符串的末尾开始逐位相加。每次从 a 和 b 中取出当前位,如果某个字符串已经遍历完则认为该位为0。计算当前位的和(包括进位)。

Java实现

public class AddBinary {public String addBinary(String a, String b) {StringBuilder result = new StringBuilder();int i = a.length() - 1, j = b.length() - 1, carry = 0;while (i >= 0 || j >= 0) {//值int sum = carry;if (i >= 0) sum += a.charAt(i--) - '0';if (j >= 0) sum += b.charAt(j--) - '0';result.append(sum % 2);//进位carry = sum / 2;}if (carry != 0) result.append(carry);return result.reverse().toString();}// 测试用例public static void main(String[] args) {AddBinary solution = new AddBinary();System.out.println(solution.addBinary("11", "1")); // 期望输出: "100"System.out.println(solution.addBinary("1010", "1011")); // 期望输出: "10101"}
}

时间空间复杂度

  • 时间复杂度:O(max(m, n)),其中 m 和 n 分别是字符串 a 和 b 的长度。需要遍历较长的字符串。
  • 空间复杂度:O(max(m, n)),用于存储结果的 StringBuilder。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考-架构设计师-综合知识总结(试卷:2009~2022)(下篇)

说明 本文档对2009到2022年试卷的综合知识进行了归纳总结,同时对叶宏主编的《系统架构设计师教程》划分重点。 第十七章:通信系统架构设计 17.2 考题总结 第十八章:安全架构设计 18.1 重要知识点 18.2 考题总结 第十九章:大数据…

传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解

内置数据源 我们回顾一下druid数据源的配置方式 通过type属性指定数据源的类型 导入依赖 starter就使用了spring的自动装配功能 格式二是在引入druid的依赖的基础上 进行的一种配置方式 Tomcat内部也可以进行数据源的配置 轻量级中最快的数据源对象 我们切换德鲁伊连接池 我…

OpenDevin 环境配置及踩坑指南

不惧怕任何环境配置 首先 clone 项目,然后查看开发者文档:https://github.com/OpenDevin/OpenDevin/blob/main/Development.md make setup-config 自定义 LLM 配置 首先这个 devin 写的是支持自定义的 LLM 配置,并且提供了交互式命令供我们…

DzzOffice集成功能最丰富的开源PHP+MySQL办公系统套件

DzzOffice是一套开源办公套件,旨在为企业和团队提供类似“Google企业应用套件”和“微软Office365”的协同办公平台。以下是对DzzOffice的详细介绍: 主要功能和应用: 网盘:支持企业、团队文件的集中管理,提供文件标签…

app-ios 内嵌h5的缓存问题

在iOS应用中内嵌H5页面时,可能会遇到缓存问题,导致页面更新不及时。以下是一些解决策略和方法: 目录 方法1:Nginx配置 方法2:使用版本号 方法1:Nginx配置 通过Nginx服务器配置来控制缓存行为。例如&#…

Python开发示例——使用Python实现炫酷的数据动态图

前言 数据可视化是通过图形、图表、地图等可视元素将数据呈现出来,以便更容易理解、分析和解释。它是将抽象的数据转化为直观形象的过程,有助于发现数据中的模式、趋势和关系。数据可视化对于数据科学、商业分析、决策制定等领域都至关重要。当我们想用…

UniApp+Vue3使用Vant-微信小程序组件

第一步:打开创建好的UniappVue3的项目 第二步:下载Vant-Weapp npm i vant/weapp -S --production 第三步:修改目录名称 wxcomponents 必须是wxcomponents 第四步:将下载好的vant中的dist目录剪切到当前wxcomponents目录下 第五…

在 Linux 上刷新 DNS 缓存:告别过时解析,提升网络访问效率

引言 在 Linux 系统中,DNS(域名系统)缓存对于提高网络访问速度和效率至关重要。然而,当 DNS 记录发生更改或需要更新时,旧的缓存条目可能会导致访问问题或连接到错误的服务器。因此,了解如何在 Linux 上刷…

leetcode打卡#day51 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300. 最长递增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() < 1) return nums.size();vector<int> dp(nums.size(), 1);int result 0;for (int i 1; i < nums.size(); i) {for (int j 0; j < i; j) {if …

牛客网金九银十最新版互联网Java高级工程师面试八股文出炉!面面俱到,太全了

前言 作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#x…

hive split 特殊用法

日常使用 split(字符串&#xff0c;分割符) &#xff0c;如 split(abcd],dd[,as,,) 则按照分隔符逗号进行分割 但是日常数据处理过程中&#xff0c;还会遇到在某个字符后面的后者某个字符前面的分割符&#xff0c;则此时需要加入正则表达式&#xff1a; 正向前瞻断言 ,(?[)…

编程:单精度浮点型数据与双精度浮点型数据杂谈

单精度浮点型数据与双精度浮点型数据杂谈 文章目录 单精度浮点型数据与双精度浮点型数据杂谈序言浮点数据类型内存占用精度与取值范围  取值范围 序言 在编程计算中&#xff0c;浮点型数据的运算常常用到。嵌入式编程中对于数据的传输&#xff0c;一般是扩大N被取整&#xff…

无线模块通过TCP/IP协议实现与PC端的数据传输解析

在当今的信息时代&#xff0c;无线通信技术的发展日新月异&#xff0c;为我们的工作和生活带来了极大的便利。其中&#xff0c;无线通信模块通过TCP/IP协议向PC端传送数据已经成为了一种常见的通信方式。 无线通信模块是一种能够在无线网络中进行数据传输的设备。它通常集成了…

vue面试题十四

一、Vue 3的Composition API主要包括哪些函数和钩子&#xff1f; Vue 3的Composition API主要包括以下几个方面的函数和钩子&#xff1a; 1. 响应式引用和状态 ref&#xff1a;用于创建响应式引用&#xff0c;接收一个值并返回一个响应式且可变的ref对象。在模板中可以直接访…

2024年【陕西省安全员C证】考试及陕西省安全员C证最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证考试参考答案及陕西省安全员C证考试试题解析是安全生产模拟考试一点通题库老师及陕西省安全员C证操作证已考过的学员汇总&#xff0c;相对有效帮助陕西省安全员C证最新解析学员顺利通过考试。 1、【多…

155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

【学习笔记】MySQL(Ⅲ)

MySQL(Ⅲ) 11、 进阶篇 —— 视图 11.1、概述 11.2、基本语法 11.3、检查选项 CASCADED 11.4、检查选项 LOCAL 11.5、视图的更新原则12、 进阶篇 —— 存储过程 12.1、概述 12.2、基本语法 12.3、系统变量 12.4、用户定义变量 …

x86计算机的启动初期流程 Linux 启动流程

x86计算机的启动初期流程 CPU&#xff1a; step1&#xff0c;加点开机&#xff0c;cpu自己初始化 step2&#xff0c;cpu 从物理地址 0xFFFFFFF0h 取指令执行&#xff1b;此处存放BIOS代码&#xff0c;这些代码可以是由主板自动从 EEPROM中拷贝至此内存地址处&#xff1b;即下…

MySQL 日志(二)

本篇将继续介绍MySQL日志的相关内容 目录 一、二进制日志 简介 注意事项 删除二进制日志 查看二进制日志 二进制日志的格式 二、服务器日志维护 一、二进制日志 简介 二进制日志中主要记录了MySQL的更改事件&#xff08;不包含SELECT和SHOW),例如&#xff1a;表的…

Java关键字

一、什么是关键字&#xff1f; 关键字是java语言中一些被赋予特定意义的一些单词&#xff0c;不可以把它当做标识符来使用。 在java中有两个特殊的关键字goto、const&#xff0c;我们称这两个关键字为保留字。 二、Java中的关键字有哪些&#xff1f; 1&#xff09;48个关键…