反向位leetcode问题解决方案不通过所有测试

发布于 2025-01-18 16:24:14 字数 727 浏览 1 评论 0 原文

就是问题,这是我的解决方案,但没有被接受。我做错了什么?

/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
var reverseBits = function(n) {
    let arrOne = [];
    let arrTwo = [];
    let num = 0;
    arrOne = n.toString(2).split("");
    let m = 0;
    for (let i = arrOne.length - 1; i >= 0; i--) {
        arrTwo.push(arrOne[i]);
    }
    console.log(arrTwo);
    for (let k = arrTwo.length - 1; k >= 0; k--) {
        if (arrTwo[k] == 1) {
            num += (2**m);
        }
        m++;
    }
    return num;
};

This is the question and this is my solution which is not getting accepted. What am I doing wrong?

/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
var reverseBits = function(n) {
    let arrOne = [];
    let arrTwo = [];
    let num = 0;
    arrOne = n.toString(2).split("");
    let m = 0;
    for (let i = arrOne.length - 1; i >= 0; i--) {
        arrTwo.push(arrOne[i]);
    }
    console.log(arrTwo);
    for (let k = arrTwo.length - 1; k >= 0; k--) {
        if (arrTwo[k] == 1) {
            num += (2**m);
        }
        m++;
    }
    return num;
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风透绣罗衣 2025-01-25 16:24:14

你可以做到...
看看

/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
const reverseBits = n =>
  {
  let bin = 1
    , res = 0
    ;
  for (let x of n.toString(2))
    {
    if (+x) res |= bin // or if (x==='1')  res += bin 
    bin <<= 1          // binary shift left
    }
  return res
  }

let val = 243
  , res = reverseBits(val)
  ;
console.log( val, val.toString(2), '--> ', res, res.toString(2) )
.as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row::after { display: none !important; }

You can do that...
have a look to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators

/**
 * @param {number} n - a positive integer
 * @return {number} - a positive integer
 */
const reverseBits = n =>
  {
  let bin = 1
    , res = 0
    ;
  for (let x of n.toString(2))
    {
    if (+x) res |= bin // or if (x==='1')  res += bin 
    bin <<= 1          // binary shift left
    }
  return res
  }

let val = 243
  , res = reverseBits(val)
  ;
console.log( val, val.toString(2), '--> ', res, res.toString(2) )
.as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row::after { display: none !important; }

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文