67. 二进制求和

    xiaoxiao2022-06-27  140

    题目

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

    输入为非空字符串且只包含数字 1 和 0。

    示例 1:

    输入: a = "11", b = "1" 输出: "100"

    示例 2:

    输入: a = "1010", b = "1011" 输出: "10101"

    思路

    将字符串转换成字符串数组逢2进1char转化成int,要减48

    代码

    class Solution { public String addBinary(String a, String b) { int len1 = a.length(), len2 = b.length(),temp=0,sum=0;; char[] c1 = a.toCharArray(), c2 = b.toCharArray(); String str = ""; int n=len1-1,m=len2-1,x,y; while(n>=0 && m>=0){ x = c1[n]-48; y = c2[m]-48; sum = x+y+temp; temp = sum/2; str = sum%2+str; n--; m--; } while(n>=0){ x = c1[n]-48; sum = x+temp; temp = sum/2; str = sum%2+str; n--; } while(m>=0){ y = c2[m]-48; sum = y+temp; temp = sum/2; str = sum%2+str; m--; } if(temp>0) str = temp+str; return str; } }

    最新回复(0)