gpt4 book ai didi

javascript - 仅使用递归在 JavaScript 中打印带有单词字符的三 Angular 形

转载 作者:行者123 更新时间:2023-11-30 07:56:33 25 4
gpt4 key购买 nike

面试题:我被要求编写一个递归的 JavaScript 函数,它以一个 P 字符长的字符串作为输入,并打印出以下内容:

  1. 第一行打印字符串的第一个字符
  2. 第二行打印字符串的前两个字符
  3. 以此类推,直到第P行打印出该字符串的所有字符
  4. 第 (P+1) 行打印前 (P-1) 个字符
  5. 第(P+2)行打印前(P-2)个字符
  6. 依此类推直到第 (2P -1) 行只打印第一个字符

如果我们运行函数:printTriangle("A Joke")

它将打印出以下内容:

一个

一个

阿杰

一个笑话

一个笑话

一个笑话

阿杰

一个

一个

面试让我写这个功能,我只能用迭代的方式写。还在想怎么用递归的方式写那个,谁能指点一下?

最佳答案

正如 Pieter Witvoet 所暗示的那样,这是一个解决方案,它使用单个递归调用和两次打印。它比其他方法更简单,而且希望更容易理解,因为它使用递归方法而不是像尾递归一样打扮的迭代。

function triangle(str, i) {
i = i || 1;
var start = str.substr(0, i);

console.log(start);
if (i < str.length) {
triangle(str, i + 1);
console.log(start);
}
}

triangle("A Joke");

关于javascript - 仅使用递归在 JavaScript 中打印带有单词字符的三 Angular 形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com