zoukankan      html  css  js  c++  java
  • lintcode-408-二进制求和

    408-二进制求和

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

    样例

    a = 11
    b = 1
    返回 100

    标签

    二进制 字符串处理 脸书

    思路

    先相加,在处理进位,为了方便操作,将选字符串翻转,使低位位于数组前端

    code

    class Solution {
    public:
        
        /*
         * @param a: a number
         * @param b: a number
         * @return: the result
         */
        string addBinary(string a, string b) {
            // write your code here
            int sizeA = a.size(), sizeB = b.size();
            if (sizeA <= 0 || sizeB <= 0) {
                return string();
            }
            reversalString(a);
            reversalString(b);
            string result;
            int i = 0, carry = 0;
            for (i = 0; i<sizeA && i<sizeB; i++) {
                result += '0' + (a[i] - '0' + b[i] - '0');
            }
            for (; i < sizeA; i++) {
                result += a[i];
            }
            for (; i < sizeB; i++) {
                result += b[i];
            }
            for (i = 0; i < result.size(); i++) {
                int temp = result[i] - '0' + carry;
                if (temp == 2) {
                    carry = 1;
                    result[i] = '0';
                }
                else if (temp == 3) {
                    carry = 1;
                    result[i] = '1';
                }
                else {
                    carry = 0;
                    result[i] = temp + '0';
                }
            }
            if (carry == 1) {
                result += '1';
            }
            reversalString(result);
            return result;
        }
        
        void reversalString(string &str) {
            for (int i = 0; i < str.size() / 2; i++) {
                swap(str[i], str[str.size() - 1 - i]);
            }
        }
    };
    
  • 相关阅读:
    BSGS
    聪聪可可(未完成)
    强连通分量,缩点
    bozj 1823(未完成)
    网络流
    bzoj1026
    点分治 poj1741
    bzoj 3270 博物馆
    高斯消元 模板
    bzoj 3143 [Hnoi2013]游走
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7356019.html
Copyright © 2011-2022 走看看