草庐IT

RECURSION

全部标签

java - 在 Java 中重复排列数组

网站上有一些类似的问题已经提供了一些帮助,但我不能完全确定这个问题,所以我希望这不是重复的。这是一项家庭作业,您有一组字符[A、B、C],并且必须使用递归来获得所有排列(重复)。我的代码是这样做的:char[]c={'A','B','C'};publicvoidprintAll(char[]c,intn,intk){if(k==n){System.out.print(c);return;}else{for(intj=0;j然而,参数n应该定义输出的长度,所以虽然这个函数打印出所有长度为3的排列,但它不能打印出长度为2的排列。我已经尝试了所有我能想到的,并仔细研究了谷歌搜索结果,我对自己

java - 将字符串与通配符模式匹配的递归函数

所以我一整天都在尝试解决这个作业,就是做不到。以下函数接受2个字符串,第二个(不是第一个)可能包含*的(星号)。*是字符串(空,1个字符或更多)的替换,它可以出现(仅在s2中)一次、两次、更多或根本不出现,它不能与另一个相邻*(ab**c),不需要检查。publicstaticbooleansamePattern(Strings1,Strings2)如果字符串具有相同的模式,则返回true。它必须是递归的,不使用任何循环、静态和全局变量。可以使用局部变量和方法重载。只能使用这些方法:charAt(i),substring(i),substring(i,j),长度()。示例:1:TheE

java - 使用 Java 的递归表达式求值器

我打算写一个只做加法和减法的表达式求值器。我有一个简单的算法来做到这一点;但是,我有一些实现问题。我认为表达式是(它是一个字符串)"("")"这是我的算法Stringevaluate(Stringexpression)ifexpressionisdigitreturnexpressionelseifexpressionis"("")"cutthebracketsoutofitexpression1=evaluate()operator=expression2=evaluate()ifoperatoris+expression1+expression2elseifoperatoris-e

java - for-each 循环如何工作?

这个问题在这里已经有了答案:HowdoestheJava'foreach'loopwork?(29个答案)关闭6年前。for-each循环在递归调用方法或不同方法时如何工作?例子:for(Stringpermutation:permute(remaining)){//Concatenatethefirstcharacterwiththepermutationsoftheremainingcharsset.add(chars.charAt(i)+permutation);}顺便说一句,permute方法接受一个字符串并返回一个集合。谢谢。

具有两个变量的Java递归

我一直在想这个递归方法的栈会是什么样子。publicclassApples{publicstaticvoidmain(String[]args){q1(5);}publicstaticintq1(intx){if(x但是到目前为止,我只认为栈是按照x/2增长的:x=0returns1;x=1a=4b=3returns7;x=2a=10b=3returns13;x=5a=16b=9returns19;这显然既不真实也不完整。请帮助我了解堆栈是如何构建的。 最佳答案 理论:每次,此函数都会首先递归q1(x/2)路径,直到到达结束条件。然

java - 仅使用递归从星星中创建一个三角形

我需要编写一个方法,其调用方式类似于printTriangle(5);。我们需要创建一个迭代方法和一个递归方法(没有任何迭代)。输出需要如下所示:***************此代码适用于迭代,但我无法将其调整为递归。publicvoidprintTriangle(intcount){intline=1;while(line我应该注意,您不能使用任何类级变量或任何外部方法。 最佳答案 请注意,在您的迭代方法中,您有两个计数器:第一个是您在line上的第一个行,第二个是您在x上的行中的哪个位置>。您可以创建一个递归函数,它采用两个参数

java - 什么时候递归回溯合适?

我正在为一个类制作SudokuSolver,但我在使用solve方法时遇到了问题。我当前的解决方案使用递归回溯(我认为)。作业要求intsolve()--triestosolvethepuzzleusingthestrategydescribedabove.Returnsthenumberofsolutions.(上面描述的策略)Whenassigninganumbertoaspot,neverassignanumberthat,atthatmoment,conflictswiththespot'srow,column,orsquare.Weareup-frontcarefulabou

Java计算器 - 调车场

我正在尝试实现Dijkstra'salgorithm调车场通过简单的操作(+-/*)阅读数学方程式。它基本上得到一个“中缀”字符串并将其转换为“后缀”字符串。例如:输入->"(3+5)*4-12"。输出:队列[3,5,+,4,*,12,-]当从右到左阅读时,您会看到您需要从4的乘法中减去12,再加上3和5。我已经正确地做到了这一点。我认为将队列解释为计算的最简单方法是递归,因此我想出了以下代码:publicstaticExpressionnewCalc(ArrayDequeq)//qistheoutputofShuntingyardalgo{Stringtmp=q.pollLast()

java - 如何列出 Java 类及其祖先在 Eclipse 中公开的所有属性?

给定一个Java类,我希望能够列出在所有祖先中公开的所有属性,并递归遍历它们在同理。用一个简单的例子更容易解释:publicclassBaseClass1{privateintintProperty;//hasgetterandsetter(notshown)}publicclassSubClass1extendsBaseClass1{privateintprivateSoNotListed;publicSubClass2subClass2Property;}publicclassBaseClass2{publicStringstringProperty;}publicclassSub

java - 查询递归中此变量的使用情况

调用方法后,node.nth(5)在下面的代码中,publicclassList_Node{intitem;List_Nodenext;publicList_Node(){this.item=0;this.next=null;}publicList_Node(intitem,List_Nodenext){this.item=item;this.next=next;}publicList_Node(intitem){this(item,null);}publicvoidinsertAfter(intitem){this.next=newList_Node(item,this.next);