給定兩個二進位制字串,返回他們的和(用二進位制表示)。
輸入為非空字串且只包含數字 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...