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

06.05

1.二进制求和
给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。
在这里插入图片描述
考虑一个最朴素的方法:先将 aaa 和 bbb 转化成十进制数,求和后再转化为二进制数。利用 Python 和 Java 自带的高精度运算,我们可以很简单地写出这个程序:

class Solution {public String addBinary(String a, String b) {return Integer.toBinaryString(Integer.parseInt(a, 2) + Integer.parseInt(b, 2));}
}

但是会报错在这里插入图片描述
在 Java 中:
如果字符串超过 333333 位,不能转化为 Integer
如果字符串超过 656565 位,不能转化为 Long
如果字符串超过 500000001500000001500000001 位,不能转化为 BigInteger
因此,为了适用于长度较大的字符串计算,我们应该使用更加健壮的算法。
Integer.parseInt(1010, 2):表示输出2进制数1010在10进制下的数。
toBinaryString的方法,作用是:以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式(类似还有toHexSrting()方法和toOctalString()方法)。

解题思路
整体思路是将两个字符串较短的用 000 补齐,使得两个字符串长度一致,然后从末尾进行遍历计算,得到最终结果。

本题解中大致思路与上述一致,但由于字符串操作原因,不确定最后的结果是否会多出一位进位,所以会有 2 种处理方式:

第一种,在进行计算时直接拼接字符串,会得到一个反向字符,需要最后再进行翻转
第二种,按照位置给结果字符赋值,最后如果有进位,则在前方进行字符串拼接添加进位
时间复杂度:O(n)O(n)O(n)

class Solution {public String addBinary(String a, String b) {StringBuffer ans = new StringBuffer();//StringBuffer线程安全int ca = 0;//表示进位for(int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--,j--){int sum = ca;sum += i >= 0 ? a.charAt(i) - '0' : 0;sum += j >= 0 ? b.charAt(j) - '0' : 0;//'0'的ascll码是48,一个字符转换对应的值,就要减去'0'ans.append(sum % 2);//StringBuffer的append()方法是拼接ca = sum / 2;}ans.append(ca == 1 ? ca : "");return ans.reverse().toString();//reverse()表示反转}
}

相关文章:

06.05

1.二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 考虑一个最朴素的方法:先将 aaa 和 bbb 转化成十进制数,求和后再转化为二进制数。利用 Python 和 Java 自带的高精度运算,我们可以很简单地写出这…...

【虹科案例】虹科数字化仪在激光雷达大气研究中的应用

01 莱布尼茨研究所使用激光雷达进行大气研究 图 1:在 Khlungsborn 的 IAP 办公室测试各种激光器 大气研究使用脉冲激光束通过测量大气中 100 公里高度的多普勒频移和反向散射光来测量沿光束的温度和风速。返回的光信号非常微弱,会被阳光阻挡&#xff0c…...

Java抽象类介绍

1 问题 声明一个名为Employee的抽象类,其中包含name(姓名)和sex(性别)两个String类型的私有属性,并声明一个继承于Employee抽象类的子类Teacher。 2 方法 2.1 定义一个抽象类:Employee。 2.2 为Employee类设计一个抽象方法。 2.3实现抽象类Em…...

适配器模式的运用

文章目录 一、适配器模式的运用1.1 介绍1.2 适配器模式结构1.3 类适配器模式1.3.1 类适配器模式类图1.3.2 代码 1.4 对象适配器模式1.4.1 对象适配器模式类图1.4.2 代码 1.5 应用场景1.6 JDK源码解析1.6.1 字节流到字符流的转换类图1.6.2 部分源码分析1.6.3 总结 一、适配器模式…...

2023/6/8总结

MySQL必知必会 commit 和 rollback 的差异是commit会提交,而rollback不会,就好像是撤回。 使用保留点: 简单的rollback和commit语句就可以写入或者撤销整个事务处理,但是,只是对简单的事务处理才能这样做&#xff0…...

AIGC大模型之——以文生图介绍

一、什么是以文生图? 以文生图是AIGC ( AI Generated Content )框架中的一个关键技术,通过文字描述,将文字转化为图像并展示出来。以文生图具有白动化程度高、精度高、可扩展性强、可定制化等优势,具有广泛的应用前景&…...

kali学习笔记(二)

一、关闭自动锁屏 关闭自动锁屏对于测试人员来说,可以按照自己的习惯来设置,不然kali会过十分钟就锁屏,有的时候会比较不方便。 1、使用root账号登录,在display设置选项中做如下设置。 2、把休眠选项关掉。 二、创建快照 关机创…...

avx指令集判断的坑

(一)背景 项目中依赖算法同学编写的算法模块,他们在使用avx,sse指令集来提高速度,结果在一些机器上崩溃,导致项目无法发版。 我给他们说,我们项目中使用了谷歌的 libyuv 库,也使用了…...

求内推,求明主!

个人资料: 性 别: 男 年 龄: 30岁 户 籍: 湖南衡阳 专 业: 计算机科学与技术 求职意向: Java软件开发工程师/JavaWeb开发工程师 现 居 地: 深圳市龙华新区 自考本科学历,6年工作经验(做过商城,APP,小程序,也研究多个开源案例,开源项目,并提交过PR) 自我评价: 做事积极主动,有责…...

第十三章:约束

第十三章:约束 13.1:约束(constraint)概述 为什么需要约束 ​ 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 为…...

M.2 SSD接口详解

一、M.2简介 M.2接口是一种新的主机接口方案,可以兼容多种通信协议,如sata、PCIe、USB、HSIC、UART、SMBus等。 M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。无论是更小巧的规格尺…...

在本地Windows 11 系统的桌面版Docker上搭建PlantUML

文章目录 在本地Windows系统的桌面版Docker上搭建PlantUML简介步骤步骤 1:安装Docker Desktop步骤 2:启动Docker Desktop步骤 3:拉取PlantUML镜像步骤 4:运行PlantUML容器步骤 5:访问PlantUML Web界面 结论参考资料 结…...

mysql的sql_mode模式

1、sql_mode是MySQL中的一个系统变量,用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性,包括数据校验、日期处理、空值处理等。 下面是一些常见的sql_mode模式及其作用: STRICT_ALL_TABLES:为所有存储…...

chatgpt赋能python:Python编程必备之OpenCV库下载与安装

Python编程必备之OpenCV库下载与安装 作为目前最热门的计算机视觉库之一,OpenCV在人工智能领域中发挥着巨大的作用。而Python作为一门强大的编程语言,在OpenCV的使用上也有其独特的优势。本文将介绍Python如何下载和安装OpenCV库,以及如何引…...

sparkSQL的使用

sparksql只能处理结构化数据 基于rdd构建dataframe对象 from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StringType, IntegerTypeif __name__ __main__:spark SparkSession.builder.appName(test).master(local[*]).getOrCreate()sc spa…...

gitignore的语法

.gitignore 文件是用来告诉 Git 哪些文件或目录不应该被跟踪的。下面是一些常见的 .gitignore 文件语法规则: 空行或以#开头的行将被 Git 忽略,可以用作注释。 星号 * 代表零个或多个任意字符。例如, *.txt 会匹配所有的 .txt 文件。 问号 ? 代表一个…...

长袋除尘器

长袋低压脉冲除尘器是具有先进水平的高效袋式除尘设备,是一种处理风量大、清灰效果好、除尘效率高、运行可靠、维护方便、占地面积小的大型除尘设备。 工作机理 1、过滤原理: 长袋低压脉冲除尘器含尘气体由进风口进入,经过灰斗时,气体中部分大颗粒粉尘…...

HTML+CSS实训——Day02——仿一个网易云音乐的登陆界面

仓库链接:https://github.com/MengFanjun020906/HTML_SX 前言 今天要继续完成我们的音乐软件了&#xff0c;昨天写完了封面&#xff0c;今天该完成开屏广告和登陆界面了。 登陆界面代码 <!DOCTYPE html> <html lang"en"> <head><meta charse…...

css蓝桥杯--电影院排座位

目录 一、介绍二、准备三、⽬标四、代码五、知识点六、完成 一、介绍 随着⼈们⽣活⽔平的⽇益提升&#xff0c;电影院成为了越来越多的⼈休闲娱乐&#xff0c;周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇&#xff0c;⼜有⼀个电影院正在做着开张前…...

c++学习——多态

多态 **多态的语法****多态的底层原理图****多态案1——计算机类****纯虚函数和抽象类****多态案例2——饮品****虚析构和纯虚析构****多态案例3—— 电脑组装** 多态是C面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态&#xff0c;复用函数名 动…...

Radxa ROCK 5B无风扇金属机箱散热改造指南

1. Radxa ROCK 5B无风扇金属机箱改造全解析 作为一名长期折腾单板计算机的硬件爱好者&#xff0c;我最近入手了Radxa ROCK 5B的无风扇金属机箱。这款机箱完美解决了原装散热方案的噪音问题&#xff0c;让这块性能强劲的RK3588开发板更适合作为静音家庭服务器或媒体中心使用。下…...

cnpy库:C++读取 npy/npz 文件

1. 动机 NumPy提供了接口函数可以把数据存入.npy文件&#xff0c;也可把多个数组存入.npzy文件。 cnpy库提供了在C中读写这些格式的接口函数 其动机来自于科学编程&#xff0c;其中大量数据是用 C 生成并用 Python 分析的。 写入 .npy 的优点是使用低级 C I/O&#xff08;f…...

OpCore Simplify:如何3步完成黑苹果配置?智能自动化工具的终极指南

OpCore Simplify&#xff1a;如何3步完成黑苹果配置&#xff1f;智能自动化工具的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂…...

网络原理笔记

目录 1 网络中的五元组 2 协议分层 OSI七层模型 TCP / IP五层&#xff08;或四层&#xff09;模型 封装和分用 3 网络编程套接字 Socket套接字 网络编程 TCP/UDP协议的区别 4 TCP/IP协议 应用层 JSON 进程的两个问题 UDP协议 TCP协议 TCP 可靠传输&#xff08;…...

从SSC生成的代码到实际跑通:我的STM32F103 EtherCAT从站移植与调试全记录

从SSC生成代码到实际运行的STM32F103 EtherCAT从站开发实战指南 1. 引言&#xff1a;EtherCAT从站开发的挑战与机遇 在工业自动化领域&#xff0c;EtherCAT凭借其卓越的实时性能和灵活的拓扑结构&#xff0c;已成为主流工业以太网协议之一。对于嵌入式开发者而言&#xff0c;实…...

用 Quartus 和 Modelsim 搭建一个简易 CPU 数据通路:手把手教你仿真寄存器与存储器模块

从零构建CPU数据通路&#xff1a;Quartus与Modelsim联合仿真实战指南 在数字逻辑设计的进阶之路上&#xff0c;真正检验学习成果的不是语法记忆&#xff0c;而是将分散的模块组合成有机整体的能力。本文将带您跨越单纯语法练习的门槛&#xff0c;通过构建一个具备实际功能的简易…...

5分钟快速上手:Mem Reduct内存管理工具终极指南

5分钟快速上手&#xff1a;Mem Reduct内存管理工具终极指南 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 你的Wind…...

B站视频下载神器:3分钟解锁大会员4K画质,永久离线保存你的专属视频库

B站视频下载神器&#xff1a;3分钟解锁大会员4K画质&#xff0c;永久离线保存你的专属视频库 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloade…...

JCSprout字符串优化终极指南:StringBuilder与StringBuffer性能对比

JCSprout字符串优化终极指南&#xff1a;StringBuilder与StringBuffer性能对比 【免费下载链接】JCSprout &#x1f468;‍&#x1f393; Java Core Sprout : basic, concurrent, algorithm 项目地址: https://gitcode.com/gh_mirrors/jc/JCSprout 在Java开发中&#x…...

5分钟快速上手:Reloaded-II .NET Core游戏模组加载器终极指南

5分钟快速上手&#xff1a;Reloaded-II .NET Core游戏模组加载器终极指南 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Reloaded-II是一款基于…...