概述
思路:从两个字符串的末尾开始逐个取字符并转换为数字,并且考虑进位。若其中一个字符已经取完,而另一个没取完,则将已经取完的字符用0代替,直到两个字符全部取完。最后如果进位为1,则需要在最后的结果前面加1。
class Solution {
public:
string addBinary(string a, string b) {
string ans;
int m=a.size()-1,n=b.size()-1;
int carrybit=0;
while(m>=0||n>=0)
{
int p=m>=0?a[m--]-'0':0;
int q=n>=0?b[n--]-'0':0;
int sum=p+q+carrybit;
ans=to_string(sum%2)+ans;
carrybit=sum/2;
}
if(carrybit) ans="1"+ans;
return ans;
}
};
最后
以上就是爱撒娇薯片为你收集整理的Leetcode 67二进制求和 C++的全部内容,希望文章能够帮你解决Leetcode 67二进制求和 C++所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复