我是靠谱客的博主 细心酸奶,最近开发中收集的这篇文章主要介绍给定两个二进制字符串,返回他们的和(用二进制表示)。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

67.二进制求和

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

输入为非空字符串且只包含数字 1 和 0.

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

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

来源:力扣(LeetCode)
链接:link
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

分析:
对输入字符串进行反转,遍历所有项,进行二进制加法以及进位运算,最后的进位要特别注意

C++源码:

class Solution {
public:
string addBinary(string a, string b) {
reserve(a);
reserve(b);
int i = 0;
char label = '0';
int t = 0;
string ans;
for(int i = 0;i < a.size() || i < b.size();i++)
{
if(i < a.size()) t = a[i] - '0' + t;
if(i < b.size()) t = b[i] - '0' + t;
if(t >= 2)
{
ans += to_string(t % 2);
t = t / 2;
}
else
{
ans += to_string(t);
t = 0;
}
}
if(t)
ans += to_string(1);
reserve(ans);
return ans;
}
void reserve(string &str)//反转函数

{
int left = 0;
int right = str.length() - 1;
while(left < right)
{
swap(str[left],str[right]);
left++;
right--;
}
}
};

最后

以上就是细心酸奶为你收集整理的给定两个二进制字符串,返回他们的和(用二进制表示)。的全部内容,希望文章能够帮你解决给定两个二进制字符串,返回他们的和(用二进制表示)。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部