LeetCode之添加二进制

xiaoxiao2025-05-29  89

给定两个二进制字符串,返回它们的总和(也是二进制字符串)。

输入字符串都是非空的,只包含字符1或  0。

例1:

输入: a =“11”,b =“1” 输出: “100”

例2:

输入: a =“1010”,b =“1011” 输出: “10101”

大神代码  清晰明了 不解释

public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1, j = b.length() -1, carry = 0; while (i >= 0 || j >= 0) { int sum = carry; if (j >= 0) {sum += b.charAt(j--) - '0';} if (i >= 0) {sum += a.charAt(i--) - '0';} sb.append(sum % 2); carry = sum / 2; } if (carry != 0) {sb.append(carry);} return sb.reverse().toString(); }

注意几点

字符和数字转换 字符-‘0’ 就可以   。

二进制进位 sum/2 就可以

           该位的值sum%2

 

转载请注明原文地址: https://www.6miu.com/read-5030938.html

最新回复(0)