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

天成信息网站建设自助建站平台手机版微网站

天成信息网站建设自助建站平台,手机版微网站,吉林省住房城乡建设厅网站,百度霸屏培训1.二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 考虑一个最朴素的方法:先将 aaa 和 bbb 转化成十进制数,求和后再转化为二进制数。利用 Python 和 Java 自带的高精度运算,我们可以很简单地写出这…

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.15wanjia.com/news/156457.html

相关文章:

  • 嘉兴有哪些做网站的公司网站制作过程合理步骤是什么
  • 收录网站源码杭州杭州网站建设
  • 网站建设代理协议怎么在欧美做网站推广
  • 济南哪家公司做网站wordpress 追加站点
  • 企业网站多少钱一个医院网站设计怎么做
  • 精品课程网站建设 公司美创网站建设优势
  • 手机网站开发环境搭建杭州 网站定制
  • 建分类信息网站兰州市城乡住房建设局网站
  • 镇江城乡建设网站首页移动云服务器
  • 长春网站建设优化企业wordpress主题下载失败
  • 嘉兴网站模板建站线上商城推广
  • 单位网站建设维护论文百度营销推广
  • 网站域名查主机名软件开发项目内容
  • 网站制作需要平台做网站公司流程
  • 访客浏览网站 网站怎么跟踪网站上线多久才能百度
  • 网站规划与建设的流程与方法 高中信息技术家在深圳光明论坛
  • 网站建设营业执照如何写简洁个人博客网站模板
  • 电子商务的网站设计中国人做外贸网站都卖什么手续
  • 智能建站公司百度推广网站必须备案吗
  • 做美团网站需要多少钱做彩票网站违法
  • 郑州百度网站推广专业小程序开发定制公司
  • 音乐网站后台管理模板wordpress 页眉修改
  • 网站如何上传简单网站开发
  • 做结构图用什么网站东莞常平邮政编码查询
  • 网站建设一般多少钱有多少个网站
  • 合肥做网站的网络公司百度怎么收录我的网站
  • flash网站建设北京装修公司一览表
  • 企业网站seo公司如何设计一个网页动态效果
  • 网站建设好评公司家在深圳罗湖
  • 有没有做机械加工的网站网站中英文切换前端