給定兩個二進位制字串,返回他們的和(用二進位制表示)。
樣例 1:python:樣例 2:輸入:
a = "0", b = "0"
輸出:"0"
輸入:
a = "11", b = "1"
輸出:"100"
class solution:
"""@param a: a number
@param b: a number
@return: the result
"""def addbinary(self, a, b):
# write your code here
if a == none:
return b
if b == none:
return a
a =
b =
result =
resultstring = ""
flag = 0
for i in range(len(a)):
for j in range(len(b)):
maxlen = max(len(a), len(b))
for k in range(-1, -1*(maxlen+1), -1):
if(-1*k <= len(a) and -1*k <= len(b)):
result.insert(0, (a[k]+b[k]+flag)%2)
flag = (a[k]+b[k]+flag) // 2
continue
if(-1*k > len(b)):
result.insert(0, (a[k]+flag)%2)
flag = (a[k]+flag) // 2
continue
if(-1*k > len(a)):
result.insert(0, (b[k]+flag)%2)
flag = (b[k]+flag) // 2
continue
if flag == 1:
result.insert(0, 1)
for m in range(len(result)):
resultstring += str(result[m])
return resultstring
c++:
class solution
for(int j = 0; j < b.size(); j++)
int maxsize = max(a.size(),b.size());
for(int k = 0; k < maxsize; k++)
if(b.empty())
if(a.empty())
}if(flag == 1)
while(!result.empty())
return resultstring;
}};
ps:這個題可以走捷徑,先換成十進位制再換成二進位制
python:
class solution:
"""@param a: a number
@param b: a number
@return: the result
"""def addbinary(self, a, b):
# write your code here
if a == none:
return b
if b == none:
return a
a = int(a, 2)
b = int(b, 2)
sum = a + b
result = bin(sum)[2:]
return result
LintCode 容易)二進位制求和
class solution 計算多出的部位 for w 1 w if answer 0 0 0 return answer vc版見project 二進位制求和。總結 1.string裡面的是字元,輸出的時候可以正確輸出數值,但是當利用其中字元型數字計算時,用到的將是它的ascii碼,要想得到st...
lintCode 408 二進位制求和
題目描述 給定兩個二進位制字串,返回他們的和 用二進位制表示 樣例a 11 b 1 返回 100 難度級別 容易 思路分析 此題思路較為簡單,認真判斷進製就可以了。需要注意的是,需要仔細判斷是否存在最後一次進製,即進製的值是否都加起來了。讀兩個輸入的字串,是從最低位 即字串尾 開始進行加法和進製計算...
二進位制求和
給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 1 使用jdk進製轉化 1,第一時間想到使用jdk自帶方法,將給定的二進位制數轉化為十進位制 2,...