首页 > 其他分享 >【LeeCode】67. 二进制求和

【LeeCode】67. 二进制求和

时间:2022-12-29 22:31:47浏览次数:60  
标签:BigInteger addBinary String 二进制 Solution LeeCode 67 new public

【题目描述】

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

​https://leetcode.cn/problems/add-binary/​​​


【示例】

【LeeCode】67. 二进制求和_字符串

【代码】官方

基于Integer. parseInt(String s, int radix) 把字符串s按radix进制进行转换 然后利用 toBinaryString转字符串

package com.company;
// 2022-12-28

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

public class Test{
public static void main(String[] args) {
new Solution().addBinary("11", "1"); // 输出 "100"
new Solution().addBinary("1010", "1011"); // 输出 "10101"
}
}

【admin】二进制计算

class Solution {
public String addBinary(String a, String b) {
StringBuffer ans = new StringBuffer();

int n = Math.max(a.length(), b.length()), carry = 0;
for (int i = 0; i < n; ++i) {
carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
ans.append((char) (carry % 2 + '0'));
carry /= 2;
}

if (carry > 0) {
ans.append('1');
}
ans.reverse();

return ans.toString();
}
}


【代码】admin

new BigInteger(String val, int radix)   --> 把String的字符串按radix类型转换

BigInteger add(BigInteger val)           --> 利用BigInter的add来进行相加

String toString(int radix)                    --> 利用toString按对应的制式进行转换

package com.company;
// 2022-12-29

import java.math.BigInteger;
class Solution {
public String addBinary(String a, String b) {
BigInteger x = new BigInteger(a, 2);
BigInteger y = new BigInteger(b, 2);
BigInteger res = x.add(y);
System.out.println(res.toString(2));
return res.toString(2);
}
}

public class Test{
public static void main(String[] args) {
new Solution().addBinary("11", "1"); // 输出 "100"
new Solution().addBinary("1010", "1011"); // 输出 "10101"
}
}


标签:BigInteger,addBinary,String,二进制,Solution,LeeCode,67,new,public
From: https://blog.51cto.com/u_13682316/5978808

相关文章

  • 二进制部署mysql
    下载二进制格式的软件包mysql包位置:(https://downloads.mysql.com/archives/community/) #下载地址mysql选择5.7.39版本linux64位 https://cdn.mysql.com/archive......
  • 675. 为高尔夫比赛砍树
    题目描述给了一个mxn的森林矩阵,里面的数字为0代表障碍,1代表平地,>1的数代表树题目要求你必须按照树的高度从低到高砍树,问砍完的需要最少多少步?f1-遍历排序+bfs基本分析......
  • 一篇《XY6762CA 4G 核心板》的详情介绍~
        深圳市新移科技有限公司推出的《XY6762CA 4G核心板》是基于联发科MT6762(曦力P22)平台所研发出的4G全网通核心板。采用沉金生产工艺,耐腐蚀抗干扰,支持-20℃-70℃......
  • #yyds干货盘点# LeetCode程序员面试金典:二进制数转字符串
    题目:二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。示例1:输入:0.......
  • 什么是二进制数
    首先让我们来看一下二进制数转换成十进制数的方法:  接下来,让我们来解释一下各数位的数值和位权相乘后“相加”这个处理的原因。其实大家所说的数值,表示的就是构成数......
  • 用二进制数表示计算机信息的原因
    在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也......
  • 解决二进制文件下载乱码问题
    好久没写博客了,突然想记录点什么。前段时间遇到一个问题,记录一下,以后遇到可以找到解决方案。事情的原由是这样的,后端返回一个二进制的csv文件让前端进行下载,前端采用axio......
  • 每日食词—day067
    brightnessn.亮度、明度、色度、彩度graduaten. v. adj.研究生、毕业、毕业生commitv.提交、承诺、确定recurringadj. v.递归、循环、循环的、复发的、......
  • 一篇关于《XY6761CA 4G 核心板》的文章!
       深圳市新移科技有限公司推出的《XY6761CA 4G核心板》是基于联发科MT6761(曦力A22)平台所研发出的4G全网通,安卓9.0操作系统的核心板。它采用的是沉金生产工艺,耐腐......
  • 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群
    公众号关注「WeiyiGeek」本章目录:0x00前言简述0x01环境准备主机规划软件版本网络规划0x02安装部署1.基础主机环境准备配置2.负载均衡管理工具安装与内核加载3.高可用HApr......