输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。示例如下:/**
* @param a = "1101"
* @param b = "1100"
* @return "11001"
*/
public String add(String a, String b){ }
数据范围: 
输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。示例如下:/**
* @param a = "1101"
* @param b = "1100"
* @return "11001"
*/
public String add(String a, String b){ }
输入两个字符串,如"1101", "1100"
"11001"
1101 1100
11001
0 1
1
import sys a,b=list(map(int,sys.stdin.readline().split())) plus=list(str(a+b)) res=[] for i in range(len(plus)-1,-1,-1): if int(plus[i])<=1: res.insert(0,plus[i]) elif int(plus[i])>=2: res.insert(0,str(int(plus[i])-2)) plus[i-1]=str(int(plus[i-1])+1) if int(plus[0])>=2: res.insert(0,'1') print(int(''.join(res)))
str1, str2 = input().split() flag = 0 i = 0 j = 0 new_str = "" while i < len(str1) and j < len(str2): a1 = int(str1[-(i+1)]) a2 = int(str2[-(j+1)]) if a1 + a2 + flag == 0: flag = 0 new_str = "0" + new_str elif a1 + a2 + flag == 1: flag = 0 new_str = "1" + new_str elif a1 + a2 + flag == 2: flag = 1 new_str = "0" + new_str else: flag = 1 new_str = "1" + new_str i += 1 j += 1 while i < len(str1): a1 = int(str1[-(i+1)]) if a1 + flag == 0: flag = 0 new_str = "0" + new_str elif a1 + flag == 1: flag = 0 new_str = "1" + new_str else: flag = 1 new_str = "0" + new_str i += 1 while j < len(str2): a2 = int(str2[-(j+1)]) if a2 + flag == 0: flag = 0 new_str = "0" + new_str if a2 + flag == 1: flag = 0 new_str = "1" + new_str else: flag = 1 new_str = "0" + new_str j += 1 if flag == 1: new_str = "1" + new_str print(new_str)
"""" 进制间转换 ↓ 2进制 8进制 10进制 16进制 2进制 - bin(int(x, 8)) bin(int(x, 10)) bin(int(x, 16)) 8进制 oct(int(x, 2)) - oct(int(x, 10)) oct(int(x, 16)) 10进制 int(x, 2) int(x, 8) - int(x, 16) 16进制 hex(int(x, 2)) hex(int(x, 8)) hex(int(x, 10)) - """ if __name__ == "__main__": a = [int(x, 2) for x in input().strip().split()] print(str(bin(sum(a)))[2:])