题解 | #二进制求和#

二进制求和

https://www.nowcoder.com/practice/1620262056c24c0e96de32fb261703d0

using System;
using System.Collections.Generic;


class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A string字符串
     * @param B string字符串
     * @return string字符串
     */
    public string binaryAdd (string A, string B) {
        if (string.IsNullOrWhiteSpace(A) && string.IsNullOrWhiteSpace(B))
            return string.Empty;
        if (string.IsNullOrWhiteSpace(A))
            return B;
        if (string.IsNullOrWhiteSpace(B))
            return A;
        int nMaxLen = A.Length >= B.Length ? A.Length : B.Length;
        char[] cC = new char[nMaxLen];
        int nAddC = 0;
        for (int nIndex = nMaxLen - 1; nIndex >= 0; nIndex--) {
            int nA = nIndex - (nMaxLen - A.Length) < 0 ? 0 : A[nIndex -
                     (nMaxLen - A.Length)] - '0';
            int nB = nIndex - (nMaxLen - B.Length) < 0 ? 0 : B[nIndex -
                     (nMaxLen - B.Length)] - '0';
            cC[nIndex] = char.Parse(((nA + nB + nAddC) % 2).ToString());
            nAddC = (nA + nB + nAddC) / 2;
        }
        return nAddC > 0 ? nAddC.ToString() + string.Join("", cC) : string.Join("", cC);
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务