Description:
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"
Solution:
等会再写!
Code:
public int[] plusOne(int[] digits) { int n = digits.length; int count = n -1; if (digits[n-1] != 9) { digits[count]++; return digits; }else { while (digits[count] == 9) { if (count == 0) { int[] res = new int[n+1]; res[0] = 1; return res; }else { digits[count] = 0; count --; } } digits[count] ++; } return digits; }
提交情况:
Runtime: 0 ms, faster than 100.00% of Java online submissions for Plus One.
Memory Usage: 37.2 MB, less than 55.00% of Java online submissions for Plus One.
LeetCode讨论区有一个更为简洁的方法:
public int[] plusOne(int[] digits) { int n = digits.length; for(int i=n-1; i>=0; i--) { if(digits[i] < 9) { digits[i]++; return digits; } digits[i] = 0; } int[] newNumber = new int [n+1]; newNumber[0] = 1; return newNumber; }
"11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"