leetcode 67 二進位制求和(C語言)

2021-09-09 07:05:13 字數 1284 閱讀 9464

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

輸入為非空字串且只包含數字 1 和 0。

示例 1:

輸入: a = "11", b = "1"

輸出: "100"

示例 2:

輸入: a = "1010", b = "1011"

輸出: "10101"

有人提供思路說轉成int型再進行運算,但int無法處理超大資料

以下**純字串指標操作:

執行用時: 4 ms, 在add binary的c提交中擊敗了57.09% 的使用者

#include

#include

#include

#include

char

*addbinary

(char

* a,

char

* b)

puts

(a);

puts

(b);

}else

puts

(b);

}//複製較長字串,便於讓差值保持原狀

if(size_a > size_b)

}else

}//相加

for(i =

0; i < size_min; i++

) c_ptr = c + size_max -1;

//指標歸位

//去掉字元導致的ascii重複運算

for(i =

0; i < size_min; i++

) c_ptr = c + size_max -1;

//指標歸位

//進製

flag =0;

//注意flag是int

for(i =

0; i < size_max; i++

)elseif(

*c_ptr ==

'2')

elseif(

*c_ptr ==

'1')

elseif(

*c_ptr ==

'0')

}//如果迴圈結束後flag=1,說明還有進製,應在最前面新增1

if(flag ==1)

*(c_ptr +0)

='1';}

return c;

}int

main()

Leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 class solution if blen 0 carry sum 2 錯誤的 if sum 2...

leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 新鮮現做 幸福coding class solution object def addbinary se...

leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例1 輸入 a 11 b 1 輸出 100 示例2 輸入 a 1010 b 1011 輸出 10101 解題思路 老老實實的採用了較為暴力的列舉法來作答,所以 較為複雜,且可讀性較差 class solut...