DOJO004

  • Dashool 創辦人
  • 喜歡調酒
  • Rails、Nextjs、TypeScript

來刷 LeetCode 吧! 19 67. Add Binary

LeetCode

題目分析 

給兩個大整數的二進位字串,回傳兩個相加的和 
第一直覺(錯誤) 
  • 字串轉為數字相加再換回字串

var addBinary = function (a, b) {
  var dec = parseInt(a, 2) + parseInt(b, 2);
  return dec.toString(2);
};


錯在若a、b過大。
 
Js Number 是以雙精度浮點數表示,精度約為 16位十進制數,若超出範圍會出現精度損失。
 

 

BigInt

 
在 js 當中有一些前綴字可以表示後面的字串為什麼進制。
 
  • 0b 二進制
  • 0o 八進制
  • 0x 十六進制

添加二進制的前綴 “0b”
 
var addBinary = function (a, b) {
  var dec = BigInt("0b" + a) + BigInt("0b" + b);
  return dec.toString(2);
};

版權所有 © 2023 DOJO004

Deployed on Zeabur