leetcode67:二进制求和

题目链接:67. 二进制求和 - 力扣(LeetCode)

class Solution {
public:
    string addBinary(string a, string b) {
        int stralen = a.size(), strblen = b.size();
        int curtc;
        int Maxlen = max(stralen, strblen);
        vector<int> stra;
        vector<int> strb;
        vector<int> strc;
        string ss1;
        for(int i = 0; i < a.size(); i++)
        {
            int curta = a[i] - '0';
            stra.push_back(curta);
        }
        for(int i = 0; i < b.size(); i++)
        {
            int curtb = b[i] - '0';
            strb.push_back(curtb);
        }
        if(stralen < strblen)
        {
            int difference = strblen - stralen;
            for(int i = 0; i < difference; i++)
            {
                stra.insert(stra.begin(), 0);
            }
        }
        if(stralen > strblen)
        {
            int difference = stralen - strblen;
            for(int i = 0; i < difference; i++)
            {
                strb.insert(strb.begin(), 0);
            }
        }
        for(int i = Maxlen - 1; i >= 1; i--)
        {
            int curt = stra[i] + strb[i];
            if(curt > 1)
            {
                curtc = stra[i] + strb[i] - 2;
                stra[i - 1]++;
                strc.push_back(curtc);
            }
            if(curt == 1)
            {
                strc.push_back(1);
            }
            if(curt == 0)
            {
                strc.push_back(0);
            }
        }
        if(stra[0] + strb[0] > 1)
        {
            curtc = stra[0] + strb[0] - 2;
            strc.push_back(curtc);
            strc.push_back(1);
        }
        if(stra[0] + strb[0] == 1)
        {
            strc.push_back(1);
        }
        if(stra[0] + strb[0] == 0)
        {
            strc.push_back(0);
        }
        for(int i = 0; i < strc.size(); i++)
        {
            ss1 += strc[i] + '0';
        }
        reverse(ss1.begin(), ss1.end());
        return ss1;
    }
};

这个题目算作中档题。这个题目实际上我把字符串转成每一个相应的数字了,然后从后往前遍历两个数组的每一位和,大于1在判断是2还是3,这个代码适用于二进制求和,要是其他进制求和,还得另外编写代码。

相关推荐

  1. leetcode67二进制求和

    2024-06-11 21:46:04       7 阅读
  2. leetcode67 二进制求和

    2024-06-11 21:46:04       9 阅读
  3. 二进制求和算法(leetcode67题)

    2024-06-11 21:46:04       38 阅读
  4. 【技巧】Leetcode 67. 二进制求和【简单】

    2024-06-11 21:46:04       7 阅读
  5. 【C】67 二进制求和

    2024-06-11 21:46:04       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 21:46:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 21:46:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 21:46:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 21:46:04       18 阅读

热门阅读

  1. GPS原理与接收机设计

    2024-06-11 21:46:04       8 阅读
  2. vue 之 h() 函数

    2024-06-11 21:46:04       8 阅读
  3. 超宽输送带与普通输送带的区别是什么

    2024-06-11 21:46:04       9 阅读
  4. 日常练习——[BJ2011.X5] 选小寿星

    2024-06-11 21:46:04       7 阅读
  5. 设计模式大作业-服装管理系统(包调试成功)

    2024-06-11 21:46:04       9 阅读
  6. Http File Server 2.0(HFS)使用说明

    2024-06-11 21:46:04       8 阅读
  7. C++命名规则

    2024-06-11 21:46:04       7 阅读
  8. 安卓手机APP开发____activity简介

    2024-06-11 21:46:04       7 阅读