06.05

news/2024/10/29 5:28:55/

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()表示反转}
}

http://www.ppmy.cn/news/222832.html

相关文章

NIMA: Neural Image Assessment

摘要:基于自动学习的图像质量评估技术在评价图像采集管道、存储技术和共享媒体等方面具有广泛的应用价值,近年来已成为图像质量评估研究的热点。尽管这一问题具有主观性,但现有的大多数方法仅对AVA[1]和TID2013[2]等数据集提供的平均意见得分进行预测。我…

哪些蓝牙耳机便宜好用?实惠好用的蓝牙耳机推荐

现在无线蓝牙耳机可以轻松实现移动中通话和听音乐,享受充分的无线自由,多数人购买蓝牙耳机对于音质有要求以及好用以外,当然还有性价比,下面我来推荐几款实惠好用的蓝牙耳机。 一、南卡lite pro2蓝牙耳机 NANK南卡是我国的国产品…

低噪放大器

0 引言 在雷达射频接收系统中,对系统性能指标的要求越来越高,其中低噪声放大器是影响着整个接收系统的噪声指标的重要因素。与普通的放大器相比,低噪声放大器作用比较突出,一方面可以减少系统的杂波干扰,提高系统的灵敏…

用NE5532运算放大器制作降噪耳机

文章目录 前言一、运放选用二、使用步骤 前言 这是一款用运放设计的降噪耳机,所谓“降噪耳机”就是使用者戴上它之后在比较吵闹的环境中感到相对安静。   下面笔者介绍它的工作原理。我们知道声音是一种机械波。它是靠机械振动产生的。我们感知声音是声波推动耳朵…

开放耳机有什么优缺点,推荐几款不错的开放式耳机

​由于骨传导耳机可以保持耳朵的开放,长时间佩戴不会有闷热感,同时可以在运动中保持安全,因此被越来越多的人接受。在目前市面上骨传导耳机品牌众多,价格从几十元到上千元不等,为了让大家更好地挑选适合自己的骨传导耳…

耳机放大器

摘自:http://baike.baidu.com/view/705055.htm?fraladdin 1简介编辑 英文名称:Headphone Amplifier 耳机功率放大器简称 耳放。 在 耳机系统中, 音源与耳机之间加入一个耳机功率放大器的环节,可以改善 音质、调整系统的音色走向&…

计算机专业应届毕业生有没有必要参加IT培训?

大学学习的计算机专业,毕业还需要进行IT培训吗?我想,这个问题也困扰着你们吧。那今天小课就带着你们分析一下,计算机专业毕业的应届生到底有没有必要进行培训。 了解企业的技术需求 考虑培训不培训,首先要了解一下现在…

el-form嵌套el-table编辑,校验信息显示在气泡框中

文章目录 概要整体架构流程技术名词解释技术细节 概要 提示:这里可以添加技术概要 正常情况下,el-table可编辑表格,如果输入框内容不合理的情况下,错误提示会显示在el-input下方对应。 但是,我不得不将错误提示放到el…