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)

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

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

相关文章

【学习笔记】数据结构(六 ①)

树和二叉树 (一) 文章目录 树和二叉树 (一)6.1 树(Tree)的定义和基本术语6.2 二叉树6.2.1 二叉树的定义1、斜树2、满二叉树3、完全二叉树4、二叉排序树5、平衡二叉树(AVL树)6、红黑树 6.2.2 二叉树的性质6.…

opengauss使用遇到的问题,随时更新

一、查看数据库状态的方式 1、gs_ctl -D /opt/huawei/install/data/dn/ status 2、gs_om -t status --detail 3、cm_ctl query -Cv二、opengauss打印WDR性能报告 1、开启WDR性能参数开关 gs_guc reload -N all -D /opt/huawei/install/data/dn -c "enable_wdr_snap…

通用大模型 vs 垂直大模型:谁将赢得AI战场?

引言 在人工智能领域,大模型的快速发展引发了广泛的关注和讨论。大模型,尤其是基于深度学习和海量数据训练的模型,已经在多个领域展现出强大的能力。从自然语言处理、图像识别到自动驾驶和医疗诊断,AI大模型正深刻改变着我们的生…

基于二自由度汽车模型的汽车质心侧偏角估计

一、质心侧偏角介绍 在车辆坐标系中,质心侧偏角通常定义为质心速度方向与车辆前进方向的夹角。如下图所示,u为车辆前进方向,v为质心速度方向,u和v之间的夹角便是质心侧偏角。 质心侧偏角的作用有如下三点: 1、稳定性…

跨境专线的网速收到什么影响

跨境专线的网速受到多种因素的影响。以下是一些主要因素: 1. 物理距离 地理位置:跨境专线通常涉及较长的物理距离。数据传输的延迟会随着距离增加而增加,特别是在跨越海洋或多个国家时。 2. 网络基础设施 线路质量:专线的物理…

SVN笔记-SVN安装

SVN笔记-SVN安装 1、在windows下安装 SVN 1、准备svn的安装文件 下载地址:https://sourceforge.net/projects/win32svn/ 2、下载完成后,在相应的盘符中会有一个Setup-Subversion-1.8.17.msi的文件,目前最新的版本是1.8.17, 这里…

使用docker创建zabbix服务器

首先保证服务器已正常安装docker,然后执行下面这几个容器创建命令: #创建MySQL容器 docker run --name mysql-server -t --restartunless-stopped -e MYSQL_DATABASE"zabbix" -e MYSQL_USER"zabbix" -e MYSQL_PASSWORD"zabbix_…

基于双向 LSTM 和 CRF 的序列标注模型

基于双向 LSTM 和 CRF 的序列标注模型 在自然语言处理中,序列标注是一项重要的任务,例如命名实体识别、词性标注等。本文将介绍如何使用 Keras 构建一个基于双向 LSTM 和 CRF 的序列标注模型。 一、引言 序列标注任务要求为输入序列中的每个元素分配一个标签。传统的方法可…

Matlab自学笔记36:日期时间型的概念、分类和创建方法

1.概念 日期时间型(Dates and Time)数据具有灵活的显示格式和高达毫微秒的精度,并且可以处理时区、夏令时和平闰年等特殊因素 2.日期时间型数据有以下三种表示方式 (1)Datetime型,表示日期时间点&#x…

opencv4.5.5 GPU版本编译

一、安装环境 1、opencv4.5.5 下载地址:https://github.com/opencv/opencv/archive/refs/tags/4.5.5.ziphttps://gitee.com/mirrors/opencv/tree/4.5.0 2、opencv-contrib4.5.5 下载地址:https://github.com/opencv/opencv_contrib/archive/refs/tags/4…

Python中的数据可视化:从基础图表到高级可视化

数据可视化是数据分析和科学计算中不可或缺的一部分。它通过图形化的方式呈现数据,使复杂的统计信息变得直观易懂。Python提供了多种强大的库来支持数据可视化,如Matplotlib、Seaborn、Plotly等。本文将从基础图表入手,逐步介绍如何使用这些库…

Oracle(143)如何管理重做日志文件?

管理重做日志文件是Oracle数据库管理中的关键任务。重做日志文件用于记录所有对数据库的更改,并在数据库恢复过程中发挥重要作用。以下是如何管理重做日志文件的详细步骤和代码示例,涵盖创建、添加、删除、重命名和监视重做日志文件等方面。 1. 创建重做…

【第十一章:Sentosa_DSML社区版-机器学习之分类】

目录 11.1 逻辑回归分类 11.2 决策树分类 11.3 梯度提升决策树分类 11.4 XGBoost分类 11.5 随机森林分类 11.6 朴素贝叶斯分类 11.7 支持向量机分类 11.8 多层感知机分类 11.9 LightGBM分类 11.10 因子分解机分类 11.11 AdaBoost分类 11.12 KNN分类 【第十一章&…

Vue Router v3 深入指南:配置、概念、代码演示及应用场景

Vue Router v3 深入指南:配置、概念、代码演示及应用场景 Vue Router 是 Vue.js 官方的路由管理器,它与 Vue.js 核心深度集成,使得构建单页面应用(SPA)变得简单。本文将详细介绍 Vue Router v3 的配置项、路由信息对象…

探索未来科技的无限可能:IT领域的深度剖析与前瞻

探索未来科技的无限可能:IT领域的深度剖析与前瞻 在这个日新月异的时代,信息技术(IT)如同一股不可阻挡的洪流,深刻地改变着我们的生活方式、工作模式乃至整个社会的运行逻辑。今天,让我们一同潜入IT的浩瀚…

关系型数据库 - MySQL II

基本概念 SQL 指令 SQL 指令是用于访问和处理数据库的标准的计算机语言。对于 MySQL 等常用数据库都可以通过使用 SQL 访问和处理数据系统中的数据。 注意事项 SQL 对大小写不敏感。标识符应避免与关键字重名!可用反引号()为标识符包裹。…

使用python写按键程序

主要用到的python库是PyAutoGUI,输入一下命令安装即可。 pip install pyautoguiPyAutoGUI官网:https://pyautogui.readthedocs.io/en/latest/ 下面做一些功能介绍,介绍部分的内容均来自官网。 部分函数简介 注意:下面函数大部…

Java之String 类的学习

目录 1. String类的重要性 2. 常用方法 2.1 字符串常用3种构造 2.2 String对象的4种比较 1. 比较是否引用同一个对象 2. boolean equals(Object anObject) 方法:按照字典序比较 3. int compareTo(String s) 方法: 按照字典序进行比较 4. int compar…

Java语言程序设计基础篇_编程练习题***18.33 (游戏:骑士旅途的动画)

目录 ***18.33 (游戏:骑士旅途的动画) 习题思路 代码示例 动画演示 ***18.33 (游戏:骑士旅途的动画) 为骑士旅途的问题编写一个程序,该程序应该允许用户将骑士放到任何一个起始正方形,并单击Solve按钮,用动画展示骑士沿着路径的移动&…

深度学习之表示学习 - 贪心逐层无监督预训练篇

引言 在人工智能的浩瀚星空中,深度学习以其强大的数据处理与模式识别能力,成为了一颗璀璨的明星。而表示学习,作为深度学习的核心基石之一,正引领着这一领域不断突破边界。表示学习旨在将原始数据转换为更加抽象、更有意义的特征…