【发布时间】:2016-11-14 05:24:24
【问题描述】:
面试题:我被要求写一个递归的 JavaScript 函数,它以一个 P 字符长的字符串作为输入,并打印出以下内容:
- 第一行打印字符串的第一个字符
- 第二行打印字符串的前两个字符
- 以此类推,直到第 P 行打印出字符串的所有字符
- 第 (P+1) 行打印前 (P-1) 个字符
- 第 (P+2) 行打印前 (P-2) 个字符
- 以此类推,直到第 (2P -1) 行只打印第一个字符
如果我们运行函数:printTriangle("A Joke")
它将打印出以下内容:
一个
一个
阿杰
一个乔
一个笑话
一个笑话
一个笑话
一个乔
阿杰
一个
一个
面试让我写这个函数,我只能用迭代的方式写。还在想如何用递归的方式来写,有大神能指点一下吗?
【问题讨论】:
-
您可以在 printTriangle() 函数中添加可选的第二个参数。如果这是为了面试,我相信自己尝试一下是公平的。
-
一种方法是让您的函数在 调用自身之前和之后 打印一个子字符串。每个调用都告诉下一个调用绘制一个更长的子字符串,直到打印完整的字符串。
-
@PieterWitvoet 我已经使用这种方法进行了回答。
标签: javascript string recursion