问题描述
小U和小R喜欢探索二进制数字的奥秘。他们想找到一个方法,将两个二进制字符串相加并以十进制的形式呈现。这个过程需要注意的是,他们的二进制串可能非常长,所以常规的方法可能无法处理大数。小U和小R希望你帮助他们设计一个算法,该算法能在保证时间复杂度不超过O(n^2)
的前提下,返回两个二进制字符串的十进制求和结果。
测试样例
样例1:
输入:
binary1 = "101" ,binary2 = "110"
输出:'11'
样例2:
输入:
binary1 = "111111" ,binary2 = "10100"
输出:'83'
样例3:
输入:
binary1 = "111010101001001011" ,binary2 = "100010101001"
输出:'242420'
样例4:
输入:
binary1 = "111010101001011" ,binary2 = "10010101001"
输出:'31220'
样例5:
输入:
binary1 = "11" ,binary2 = "1"
输出:'4'
关键步骤
-
二进制字符串转换为整数:
- 你可以使用 Python 内置的
int
函数将二进制字符串转换为整数。例如,int("101", 2)
会将二进制字符串"101"
转换为整数5
。
- 你可以使用 Python 内置的
-
整数相加:
- 将两个二进制字符串转换为整数后,直接相加即可。
-
整数转换为十进制字符串:
- 将相加后的整数转换为十进制字符串。你可以使用
str
函数将整数转换为字符串。
- 将相加后的整数转换为十进制字符串。你可以使用
代码实现
def solution(binary1, binary2):# 将二进制字符串转换为整数int1 = int(binary1, 2)int2 = int(binary2, 2)# 将两个整数相加sum_int = int1 + int2# 将结果转换为十进制字符串result = str(sum_int)return result