leetcode 67.二进制求和

编程入门 行业动态 更新时间:2024-10-26 04:31:07

<a href=https://www.elefans.com/category/jswz/34/1769930.html style=leetcode 67.二进制求和"/>

leetcode 67.二进制求和

leetcode 67.二进制求和

题目描述

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为 非空 字符串且只包含数字 10

示例 1:

输入: a = "11", b = "1"
输出: "100"

示例 2:

输入: a = "1010", b = "1011"
输出: "10101"

解题思路

两个字符串同时从后向前遍历,对于位相加,再加上进位符三者进行运算,需要注意的是字符串第零哥位置进位的情况

class Solution {
public:string addBinary(string a, string b) {int aLen = a.size()-1, bLen = b.size()-1;string res = "";char carry = 0; // 进位标志while(aLen>=0 || bLen>=0){int temp = 0;  // 存储字符串对应位相加的结果if(aLen >= 0){temp = a[aLen] - '0';aLen--;} if(bLen >= 0){temp += (b[bLen] - '0');bLen--;}int str = (temp+carry)%2;   // 加上进位符,计算当前位的数值res.insert(0, 1, str + '0'); // 在当前字符串的首部插入运算结果carry = (temp+carry)/2;      // 是否进位  }if(carry){                      // 第零位进位的情况res.insert(0, 1, '1');}return res;}
};

欢迎大家关注我的个人公众号,同样的也是和该博客账号一样,专注分享技术问题,我们一起学习进步

更多推荐

leetcode 67.二进制求和

本文发布于:2024-02-27 16:51:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707434.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!