我是靠谱客的博主 爱撒娇薯片,最近开发中收集的这篇文章主要介绍Leetcode 67二进制求和 C++,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

思路:从两个字符串的末尾开始逐个取字符并转换为数字,并且考虑进位。若其中一个字符已经取完,而另一个没取完,则将已经取完的字符用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++所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部