LeetCode_字符串_简单_67.二进制求和

这篇具有很好参考价值的文章主要介绍了LeetCode_字符串_简单_67.二进制求和。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.题目

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

示例 1:
输入:a = “11”, b = “1”
输出:“100”

示例 2:
输入:a = “1010”, b = “1011”
输出:“10101”

提示:
1 <= a.length, b.length <= 104
a 和 b 仅由字符 ‘0’ 或 ‘1’ 组成
字符串如果不是 “0” ,就不含前导零

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/add-binary

2.思路

(1)调用 API
先将 a 和 b 转化成十进制数,求和后再转化为二进制数,这里可以使用 Java 自带的 API 来实现,但是在 Java 中:

  • 如果字符串超过 33 位,不能转化为 Integer;
  • 如果字符串超过 65 位,不能转化为 Long;
  • 如果字符串超过 500000001 位,不能转化为 BigInteger;

因此,该思路的适用性不强,这一点需要注意。

(2)模拟
本题可以使用模拟的方式来进行二进制求和,具体步骤与415.字符串相加这题十分相似,只不过进制由十进制变为了二进制。

相关题目:
LeetCode_字符串_简单_415.字符串相加文章来源地址https://www.toymoban.com/news/detail-487071.html

3.代码实现(Java)

//思路1————调用 API
class Solution {
    public String addBinary(String a, String b) {
        return Integer.toBinaryString(
            Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
        );
    }
}
//思路2————模拟
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 x = (i >= 0) ? a.charAt(i) - '0' : 0;
            int y = (j >= 0) ? b.charAt(j) - '0' : 0;
            int val = x + y + carry;
            res.append(val % 2);
            carry = val / 2;
            i--;
            j--;
        }
        return res.reverse().toString();
    }
}

到了这里,关于LeetCode_字符串_简单_67.二进制求和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】二进制字符串转换为数字

     在本文中,我们将探讨如何使用 Go 语言将十六进制字符串转换为二进制字符串,将不定长整型补码字符串转换为数字,以及如何将 IEEE754 标准的单精度(32位)和双精度(64位)浮点数字符串转换为数字。最后,我们将讨论如何将布尔类型的二进制字符串转换为布尔值。 这

    2024年01月16日
    浏览(34)
  • 【Golang】补码二进制字符串转整型

     在计算机科学中,原码、反码和补码是用来表示有符号整数的三种不同的二进制编码方式。下面将详细解释每一种编码方式的特点和用途。 原码  原码是最直观的有符号数表示方法。在原码表示法中,最高位(符号位)用来表示数的正负,0表示正数,1表示负数。正数的原

    2024年01月21日
    浏览(45)
  • java案例5-4 字符串转换为二进制

    本例要求编写一个程序,从键盘录入一个字符串,将字符串转换为二进制数。在转换时,将字符串中的每个字符单独转换为一个二进制数,将所有二进制数连接起来进行输出。 案例在实现时,要求使用Math类、String类以及Scanner等常见Java API的常用方法. 2.运行结果 学会分析“十

    2024年02月09日
    浏览(48)
  • 【⑭MySQL | 数据类型(二)】字符串 | 二进制类型

    ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL字符串 | 二进制类型类型的分享 ✨ 5 字符串类型 字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。 下表中列出了 MySQL 中

    2024年02月11日
    浏览(32)
  • C语言二进制数据和16进制字符串互转

    知识点:结构体中的“伸缩型数组成员”(C99新增) C99新增了一个特性:伸缩型数组成员(flexible array member),利用这项特性声明的结构,其最后一个数组成员具有一些特性。第1个特性是,该数组不会立即存在。第2个特性是,使用这个伸缩型数组成员可以编写合适的代码,就

    2024年02月13日
    浏览(33)
  • 【Golang】IEEE754标准二进制字符串转为浮点类型

      IEEE 754是一种标准,用于表示和执行浮点数运算的方法。在这个标准中,单精度浮点数使用32位二进制表示,分为三个部分:符号位、指数位和尾数位。 符号位(s) 用一个位来表示数的正负,0表示正数,1表示负数。 指数位(e) 用8位表示指数。对于单精度浮点数,指数位是以

    2024年01月21日
    浏览(40)
  • 【JavaScript数据结构与算法】字符串类(计算二进制子串)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力 n 年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目

    2024年02月05日
    浏览(27)
  • Python每日一练(20230420) 数组逐位判断、交错字符串、二进制求和

    目录 1. 数组逐位判断  🌟 2. 交错字符串  🌟🌟 3. 二进制求和  🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C++每日一练 专栏 Java每日一练 专栏 比如有以下数组: a1: 1,0,0,1,0,0,0,1 a2: 0,0,0,0,1,1,1,1 a3: 0,1,0,1,0,1,0,0 a4: 1,0,1,1,1,1,0,0 a5: ....... 抓取三个数

    2024年02月15日
    浏览(27)
  • 算法-回溯相关问题-生成所有n位长的二进制字符串 Java版

    生成所有n位长的二进制字符串。假设A[0…n-1]是一个大小为n的数组。

    2024年02月16日
    浏览(28)
  • 【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

    写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包