javascript - 使用递归按顺序生成二进制字符串

标签 javascript

下面的 Hello 函数生成给定长度的二进制字符串,但有一个小问题 - 每个字符串都是以相反的顺序生成的(第二个数字是 100 而不是 001)。我一直在尝试使用 split-reverse-join 来解决这个问题。有什么想法吗?

document.write(generateBinaryStringsOfLength(3).join("<br>"));

function generateBinaryStringsOfLength(n) {
  var arr = [];
  populate_arr(n, "");

  function populate_arr(n, str) {
    if (str.length == n) {
      //arr.push(str.split("").reverse().join(""));
      arr.push(str);
    } else {
      populate_arr(n, "0" + str);
      populate_arr(n, "1" + str);
    }
  }
  return arr;
}

最佳答案

您只需颠倒在 populate_arr() 函数内传递 str 参数的顺序即可

这两行

      populate_arr(n, "0" + str );
      populate_arr(n, "1" + str );

应该是

      populate_arr(n, str + "0");
      populate_arr(n, str + "1");

document.write(generateBinaryStringsOfLength(3).join("<br>"));

function generateBinaryStringsOfLength(n) {
  var arr = [];
  populate_arr(n, "");

  function populate_arr(n, str) {
    if (str.length == n) {
      //arr.push(str.split("").reverse().join(""));
      arr.push(str);
    } else {
      populate_arr(n, str + "0");
      populate_arr(n, str + "1");
    }
  }
  return arr;
}

关于javascript - 使用递归按顺序生成二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53313268/

相关文章:

javascript - 检查下一项是否长 1 个单位 (Javascript)

javascript - 如何修复 <LI> 中用户可以使用大写字母或小写字母的搜索?

javascript - 如何更改 javascript 中 &lt;input&gt; 标签的文本值

javascript - 单击下一个菜单时关闭子菜单

javascript - 单击 <a> 时隐藏 <p> 并显示 &lt;textarea&gt;

javascript - 在日 View 中的全天上方添加自定义标题

javascript - 如何在 Neutronium 库中执行 javascript?

javascript - 如何将滚动上的淡入淡出链接到滚动的位置?

php - 在 JavaScript 数组中包含项目

java - 这个 AES JavaScript 函数中的 IV 是什么?