recursion 相关问题

递归是一种函数调用,函数调用自身。这些函数也称为递归函数。结构递归是一种解决问题的方法,其中问题的解决方案取决于对同一问题的较小实例的解决方案。

输出返回2而不是0

这是我的切入片段的解决方案 给定一个整数“N”,表示杆的长度。您需要确定可以用该杆制作的最大分段数,前提是每个

回答 1 投票 0

带递归的 XSLT 转换

我需要将 XML 文档转换为 HTML。 输入 XML: 大家好! 我需要将 XML 文档转换为 HTML。 输入XML: <items> <item no="1" par_no="0" user="Mike">Hi all!</item> <item no="2" par_no="1" user="Jane">Hi...</item> <item no="3" par_no="2" user="Pit"> says: wasap man?</item> <item no="4" par_no="2" user="Karol">are you ok?</item> <item no="5" par_no="4" user="Nick">I think he's not in the mood.</item> <item no="6" par_no="5" user="Karol">I just ask a question.</item> <item no="7" par_no="1" user="Pit">says: how are you?</item> <item no="8" par_no="7" user="Mike">fine!</item> </items> 输出 HTML: <?xml version="1.0" encoding="UTF-8"?> <ul> <li><b>Mike</b> says: Hi all! <ul> <li><b>Jane</b> says: Hi... <li><b>Pit</b> says: wasap man? <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I tihnk he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question. </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine! </ul> </li> </ul> </li> </ul> 我试图解决这个问题。我得到了代码。正在对行进行排序,但我无法获取附件。我的 XSL: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:template match="items"> <html> <ul> <xsl:apply-templates select="item[@par_no=0]"/> </ul> </html> </xsl:template> <xsl:template match="item"> <xsl:variable name="varNo" select="@no"/> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> </li> <xsl:apply-templates select="//items/item[@par_no=$varNo]"> <xsl:sort select="@par_no" data-type="number"/> </xsl:apply-templates> </xsl:template> </xsl:stylesheet> 我不知道在哪里插入标签才能得到这样的嵌套结构。请帮忙! 在 XSLT 3 中,您可以按如下方式解决: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all"> <xsl:output method="html" version="5.0" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Test</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:key name="child" match="item" use="@par_no"/> <xsl:template match="items"> <ul> <xsl:apply-templates select="key('child', '0')"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:where-populated> <ul> <xsl:apply-templates select="key('child', @no)"/> </ul> </xsl:where-populated> </li> </xsl:template> </xsl:stylesheet> 密钥和模板在以前的版本中的工作方式相同,您需要将 xsl:where-populated 替换为检查 key('child', @no) 是否选择元素以输出 ul: <xsl:template match="item"> <li> <b><xsl:value-of select="@user"/></b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <xsl:variable name="children" select="key('child', @no)"/> <xsl:if test="$children"> <ul> <xsl:apply-templates select="$children"/> </ul> </xsl:if> </li> </xsl:template> 我认为你可以简单地做(仅使用 XSLT 1.0): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:key name="chld" match="item" use="@par_no" /> <xsl:template match="/items"> <ul> <xsl:apply-templates select="item[@par_no='0']"/> </ul> </xsl:template> <xsl:template match="item"> <li> <b> <xsl:value-of select="@user"/> </b> <xsl:text> says: </xsl:text> <xsl:value-of select="."/> <ul> <xsl:apply-templates select="key('chld', @no)"/> </ul> </li> </xsl:template> </xsl:stylesheet> 浏览器中显示的结果是: 是的,我致力于 XSLT 1.0。但我没有得到这个结果。在我的 Chrome 浏览器中,结果有所不同。不幸的是我无法发布图片(( 我需要像你的照片一样的结果! HTML: <ul> <li><b>Mike</b> says: Hi all! <ul> <li> <b>Jane</b> says: Hi... <ul> <li><b>Pit</b> says: asap man?</li> <li><b>Karol</b> says: are you ok? <ul> <li><b>Nick</b> says: I think he's not in the mood. <ul> <li><b>Karol</b> says: I just ask a question.</li> </ul> </li> </ul> </li> </ul> </li> <li><b>Pit</b> says: how are you? <ul> <li><b>Mike</b> says: fine!</li> </ul> </li> </ul> </li> </ul> 为什么说 Pit 会重复两次?

回答 3 投票 0

如何在循环中将找到的值求和到顶层?

我的类别有/没有子类别。 还有属于一个或多个类别的产品。 我需要计算所有父类别中的产品数量,包括子类别

回答 1 投票 0

Haskell 无限递归

以下函数计算斐波那契数列: fib = 0 : 1 : (zipWith (+) fib (尾部 fib)) 如果我们运行它,我们将得到一个无限列表,但是递归是如何工作的呢?为什么会变成...

回答 2 投票 0

调用列表中每个元素的函数

仅使用递归(即没有任何类型的循环),给定一个元素列表,如何在 OCaml 中每次使用该元素作为参数来每次为列表中的每个元素调用一个函数?佛...

回答 2 投票 0

递归函数寻找素因数

我做了一个递归函数来查找数字的质因数,但它有一个错误,导致 Turbo c 退出。请帮忙 #包括 #包括 int素数(int num); 整数

回答 12 投票 0

递归选择排序堆栈溢出错误

导入java.util.Arrays; 公共类 RecSelect { 公共静态无效选择(int [] ar,int idx,int min,int start){ if(idx == ar.length) { 返回; } 如果(id...

回答 1 投票 0

实现递归作为解决问题的工具有哪些权衡?

我用 C++ 实现了一个简单的递归平均计算器,其中“学生”必须输入他们的成绩,函数返回他们的平均值。但我想知道使用是否有任何优势

回答 1 投票 0

增加三元组子序列

我正在 leetcode.com 上尝试增加三元组子序列问题 我一开始采用了蛮力方法,但遇到了超时问题,但通过了几乎所有测试用例。以下...

回答 2 投票 0

如何预测堆栈溢出?堆栈中如何以及哪些内存存储?

我实现了一个洪水填充递归函数来检查玩家是否能够到达地图出口,或者它会被墙壁包围。所以一个简单的地图看起来像这样: 111111111 100010C01

回答 1 投票 0

配置深度溢出值-Start-Job

我有一个递归函数,执行了大约 750 次 - 迭代 XML 文件并进行处理。代码正在使用 Start-Job 运行 下面的例子: $job = 开始作业 -ScriptBlock { 有趣...

回答 2 投票 0

返回目录和子目录中的文件总数

尝试创建一个函数,返回找到目录及其子目录的文件数。只需要帮助即可开始

回答 7 投票 0

在 TypeScript 界面中推断 React 子 props

是否可以推断第一个子元素的 props 并在 TypeScript 中强制执行它们?我可以接近它,但是泛型开始失败,而且我无法推断出类型。 我是...

回答 1 投票 0

将偶数元素移动到数组的前面,同时保持相对顺序

public static void teePaarisPaaritud(int[] a){ teePaarisPaaritudRek(a, 0); } 私有静态 void teePaarisPaaritudRek(int[] a, int i) { if(i == a.length-1) 返回; if(a[i] % 2 != 0){ ...

回答 3 投票 0

我的递归排序方法存在问题,该方法不适用于所有偶数长度的测试用例

public static void teePaarisPaaritud(int[] a){ teePaarisPaaritudRek(a, 0); } 私有静态 void teePaarisPaaritudRek(int[] a, int i) { if(i == a.length-1) 返回; if(a[i] % 2 != 0){ ...

回答 1 投票 0

为什么下面的递归函数不使用缓存中的值来返回值?

我创建了一个Python函数来计算第n个斐波那契项。为了提高效率,我使用了cache_mem 字典来存储变量。当我调试该功能时,它正在发生...

回答 3 投票 0

如何防止堆栈溢出错误?

我正在开发一个涉及四叉树的Java项目。 在四叉树的这种表示中,强度为 -1 的节点有 4 个子节点,而具有任何其他强度的节点没有子节点...

回答 1 投票 0

从整数数组中查找给定数字的最小和最大可能总和

有一个整数元素的有序数组和一个限制。对于给定的元素,有必要找到可以大于或等于极限的最小可能和最大可能总和。 最小...

回答 1 投票 0

使用 Azure Synapse Analytics 按层次结构提取员工的父级

我正在寻找以下情况的解决方案: 我必须提取我在流程中收到的一些员工的所有经理(按层次结构)(我们有一个包含所有信息的文件

回答 1 投票 0

有人可以帮我理解如何解决以下尾递归优化问题吗?

对以下函数应用尾递归优化,并编写优化编译器生成的目标代码: int foo(int n, int m) { 如果(n<1) return m+1; else

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.