- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请参阅我针对以下挑战的(非最佳)解决方案:
Return the number of total permutations of the provided string thatdon't have repeated consecutive letters.
预期结果是2640。但是,我收到超出最大调用堆栈大小的错误!
RangeError: Maximum call stack size exceeded
at findFactorial:14:24
at findFactorial:21:14
at findFactorial:21:14
at findFactorial:21:14
at findFactorial:21:14
at findFactorial:21:14
function permAlone(str) {
var final, factorial, repeated, i;
repeated = str.match(/([a-z])(?:.*)(\1)+/g);
if (str.length < 2) {
return 1;
}
// should return ["aa", "ff"]
if (repeated[0] === str) {
repeated[0] = repeated[0].split('').sort().join('').match(/([a-z])(?:.*)(\1)+/g);
repeated = repeated.reduce(function(a, b) {
return a.concat(b);
});
}
function findFactorial(n) {
if (n < 0) {
alert("No negative numbers accepted.");
}
if (n === 0) {
return 1;
}
return n * findFactorial(n - 1);
}
factorial = findFactorial(str.length); // 7! = 5040
for (i = 0; i < repeated.length; i++) {
i++;
if (repeated.length === 1 && repeated.join("") !== str) {
final = factorial - findFactorial((str.length - 1)) * findFactorial(repeated[0].length);
} else if (repeated.length > 1 && repeated[i-1].length>2 || repeated[i].length>2) {
final = findFactorial(repeated[i].length) * findFactorial(repeated[i - 1].length);
} else {
final = factorial - ((findFactorial((str.length - 1) * repeated[i].length) * (findFactorial(str.length - 1) * repeated[i - 1].length))) + (findFactorial(str.length - 2) * findFactorial(repeated[i - 1]) * findFactorial(repeated[i]));
// final = 5040 - ((6! * 2!)*2) + (5! * 2! * 2!);
}
}
return final;
}
permAlone('abfdefa'); // should return 2640
最佳答案
tibsar 为你和我指明了正确的方向。传递“aa”或“ff”findFactorial将继续调用自身,直到堆栈崩溃。除了检查负输入(检查非整数输入)之外,您还可以向 findFactorial 添加防弹功能。但与此同时,我在您的代码中发现了有问题的行:[您需要向右滚动才能看到不好的部分以及需要更改的内容,您忘记了 .length 两次]
final = factorial - ((findFactorial((str.length - 1) * repeated[i].length) * (findFactorial(str.length - 1) * repeated[i - 1].length))) + (findFactorial(str.length - 2) * findFactorial(repeated[i - 1]) * findFactorial(repeated[i]));
应该是
final = factorial - ((findFactorial((str.length - 1) * repeated[i].length) * (findFactorial(str.length - 1) * repeated[i - 1].length))) + (findFactorial(str.length - 2) * findFactorial(repeated[i - 1].length) * findFactorial(repeated[i].length));
事实上,这似乎没有给出挑战的正确答案,但它确实解决了您询问的错误。
关于javascript - FreeCodeCamp 挑战 : Explain error message?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477815/
我目前正在通过 freecodecamp 网站的 javascript 部分进行练习,我试图理解为什么特定的方法可以解决它。 function nextInLine(arr, item) { /
我正在尝试解决 freecodecamp 中的高尔夫代码挑战,但我无法真正弄清楚我的代码出了什么问题这里直接link 。链接包含我尝试运行的代码,只需访问该链接即可。 我的JS: function g
我正在尝试解决这个挑战“寻找和毁灭”。我不知道出了什么问题。有什么帮助吗? 寻找并摧毁您将获得一个初始数组(销毁器函数中的第一个参数),后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元
我在 freecodecamp 中遇到了一个 JavaScript 挑战,这可能非常简单,但我仍然不明白如何去做。其过程如下: // Setup function phoneticLookup(val
我无法提交表单 我已经彻底检查了我的代码几个小时,并查看了 freecodecamp 论坛上的帖子,但在我看来我仍然无法提交表单,也无法查明问题所在。 Email:
引用How can I get the sum of all odd fibonacci vales in javaScript?来自 FCC 的可能解决方案如下所示: function sumFib
我正在使用 freecodecamp 并进行以下练习: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures
我正在努力在 FreeCodeCamp 上传递一些看起来很简单的东西。我的代码应该通过所有测试(console.log 似乎是这么认为的)。你觉得怎么样,我是不是漏掉了什么? 我失败的测试用例: ur
我正在尝试在 freecodecamp 上完成 twitch api。 我有一个 allTotalUsers 数组,其中包含我正在循环访问的用户。 我的循环似乎正确地为我的 allTotalUsers
我正在尝试为 freeCodeCamp 收银机项目创建一个 javascript 收银机函数。 它应该如何工作的描述如下: 设计收银抽屉功能checkCashRegister()接受购买价格作为第一个
function titleCase(str) { var strArr = str.toLowerCase().split(' '); var strUp = [str.leng
我正在参加 Freecodecamp 算法挑战,因为我是编程新手。问题描述如下: Reverse the provided string. You may need to turn the strin
当我在免费代码训练营开始“Falsy Bouncer”挑战时,我遇到了一个小问题。当我尝试创建如下所示的新 bool 对象时: var bool = new Boolean(); 出现一个黄色三 An
我正在应对 FreeCodeCamp 挑战,但遇到了以下挑战: Our goal for this Algorithm is to split arr (first argument) into sm
我正在 freecodecamp.com 上学习第 15 课,但我似乎无法完成它。目标是让我的 h2 元素使用字体 'Lobster',同时保持 Monospace。我应该复制,“http://fon
请参阅我针对以下挑战的(非最佳)解决方案: Return the number of total permutations of the provided string thatdon't have
我正在做一项练习,要求: 创建一个函数,该函数查找对象数组(第一个参数)并返回具有匹配属性和值对(第二个参数)的所有对象的数组。如果要包含在返回的数组中,源对象的每个属性和值对都必须存在于集合中的对象
我的代码不在网页上显示 Logo 、显示名称和状态,尽管它们显示在控制台中。请帮我找出问题所在。我非常感激!谢谢! 这是我的笔: https://codepen.io/cmtran/pen/vJGRW
返回排序后应将值(第二个参数)插入数组(第一个参数)的最低索引。返回值应该是一个数字。 例如,getIndexToIns([1,2,3,4], 1.5) 应该返回 1,因为它大于 1(索引 0)但小于
我对 JavaScript 还比较陌生。我正在开发 freeCodeCamp - “随机报价机”。并尝试发送变量和/或 html .class。 到目前为止我的代码:Code Pen $('#twee
我是一名优秀的程序员,十分优秀!