题目描述:
给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “10”
输出: “101”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”
提示:
每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 “0” ,就都不含前导零。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/JFETK5
大致的解题思路:
具体代码如下:
package cn.edu.chong;
public class SmallTest01 {
public static void main(String[] args) {
String re = Sum("11","10");
// SmallTest01 test = new SmallTest01();
System.out.println(re);
}
private static String Sum(String a, String b) {
StringBuilder bu = new StringBuilder();
int temp = 0;
int aa = a.length()-1;
int bb = b.length()-1;
while(temp == 1 || aa >= 0 || bb >= 0){
if(aa >= 0 && a.charAt(aa--) == '1'){
temp++;
}
if(bb >= 0 && b.charAt(bb--) == '1'){
temp++;
}
bu.append(temp%2);
temp/=2;
}
return bu.reverse().toString();
}
}