Lintcode 二進位制求和

2021-09-24 10:56:40 字數 2024 閱讀 6417

給定兩個二進位制字串,返回他們的和(用二進位制表示)。

樣例 1:

輸入:

a = "0", b = "0"

輸出:"0"

樣例 2:

輸入:

a = "11", b = "1"

輸出:"100"

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 =

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,...