概述
- 链接
https://leetcode.cn/problems/add-binary/ - 题目
给你两个二进制字符串a
和b
,以二进制字符串的形式返回它们的和。
示例
输入:a = “11”, b = “1”
输出:“100”
- 思路
模拟二进制加法,尽可能简化代码。 - 代码
string ans;
int len1=a.length()-1,len2=b.length()-1,carry=0;
while(len1>=0||len2>=0){
//如果len1大于等于0,那么字符串a还没空,所以当该位置的字符是'1'时,“a[len1--]=='1'”语句为真,返回数字1;否则,该位置为字符'0',返回数字0。
//如果len1小于0,那么字符串a已经遍历完了,返回数字0;
carry+=len1>=0?(a[len1--]=='1'):0;
carry+=len2>=0?(b[len2--]=='1'):0;
//注意返回字符串,所以要进行数字到字符串的转化
ans.push_back((carry%2)==1?'1':'0');
carry/=2;
}
if(carry)
ans.push_back('1');
//记得翻转ans字符串
reverse(ans.begin(),ans.end());
return ans;
}
};
最后
以上就是鲤鱼雪碧为你收集整理的二进制求和的全部内容,希望文章能够帮你解决二进制求和所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复