【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% 的用户