leetCode JavaScript addBinary解析
阿新 • • 發佈:2019-01-09
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">題目:</span>
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
解答1:
錯誤:無法解決較大資料的轉換
/** * @param {string} a * @param {string} b * @return {string} */ var addBinary = function(a, b) { var array_a = parseInt(a,2); var array_b = parseInt(b,2); var result = array_a + array_b; var resultStr = result.toString(2); return resultStr; };
解答2:
正確:
<pre name="code" class="javascript">/** * @param {string} a * @param {string} b * @return {string} */ var addBinary = function(a, b) { var array_a = a.split("").reverse(); var array_b = b.split("").reverse(); var resultArray = []; var stepIn = 0; for(var i = 0;i<array_a.length||i<array_b.length||stepIn;i++){ var a_i = parseInt(array_a[i])||0; var b_i = parseInt(array_b[i])||0; var result_i = a_i + b_i + stepIn; if(result_i == 0){ resultArray[i] = 0; stepIn = 0; }else if(result_i == 1){ resultArray[i] = 1; stepIn = 0; }else if(result_i == 2){ resultArray[i] = 0; stepIn = 1; }else{ resultArray[i] = 1; stepIn = 1; } } resultArray = resultArray.reverse(); var resultStr = ""; // resultStr = resultArray.join(""); for(i = 0;i<resultArray.length;i++){ resultStr +=resultArray[i]; } return resultStr; };