【LeetCode】 67. Add Binary 二进制求和(Easy)(JAVA)

【LeetCode】 67. Add Binary 二进制求和(Easy)(JAVA)

题目地址: https://leetcode.com/problems/plus-one/

题目描述:

Given two binary strings, return their sum (also a binary string).

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

题目大意

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

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

解题方法

比较简单,直接遍历,判断是否需要进位即可

class Solution {
    public String addBinary(String a, String b) {
        StringBuilder res = new StringBuilder();
        int carry = 0;
        for (int i = 0; i < a.length() || i < b.length(); i++) {
            if (i < a.length()) {
                carry += a.charAt(a.length() - 1 - i) - '0';
            }
            if (i < b.length()) {
                carry += b.charAt(b.length() - 1 - i) - '0';
            }
            res.append((carry % 2));
            carry /= 2;
        }
        if (carry > 0) res.append(carry);
        return res.reverse().toString();
    }
}

执行用时 : 3 ms, 在所有 Java 提交中击败了 54.59% 的用户
内存消耗 : 38.2 MB, 在所有 Java 提交中击败了 5.16% 的用户

发布了81 篇原创文章 · 获赞 6 · 访问量 2271

猜你喜欢

转载自blog.csdn.net/qq_16927853/article/details/104894314