在Java中递归地计算子字符串出现的次数
给定两个字符串 str_1 和 str_2。目标是使用递归过程计算字符串 str1 中子字符串 str2 的出现次数。
递归函数是在其定义中调用自身的函数。
如果 str1 是 "I know that you know that i know",str2 是 "know"
出现次数为 - 3
让我们通过示例来理解。
例如
输入
str1 = "TPisTPareTPamTP", str2 = "TP";
输出
Count of occurrences of a substring recursively are: 4
Explanation
的中文翻译为:解释
The substring TP occurs 4 times in str1.
输入
str1 = "HiHOwAReyouHiHi" str2 = "Hi"
输出
Count of occurrences of a substring recursively are: 3
Explanation
的中文翻译为:解释
The substring Hi occurs 3 times in str1.
下面程序中使用的方法如下 -
在这种方法中,我们将使用 java 中的 contains() 方法搜索 str2 在 str1 中的出现。如果str2存在于str1中,则返回true。如果为 true,请使用 java 中的 ReplaceFirst() 方法将其替换为“”,然后将返回值加 1 以增加计数,从而从 str1 中删除第一个匹配项。
取两个字符串作为str1和str2。
递归方法 subsrting_rec(String str, String sub) 接受字符串 str 及其子字符串 sub 并返回 sub 在 str 中出现的次数.
检查str.contains(sub)是否为true。 ( str 有 sub )
如果为 true,则使用 str.replaceFirst(sub,””) 将第一次出现的 sub 替换为“”。
在 subsrting_rec(String str, String sub) 的递归调用中执行此操作。
在所有递归结束时,所有返回值的总和为 count .
打印结果。
示例
实时演示
public class recursive{ public static void main(String args[]){ String str1 = "TPisTPareTPamTP", str2 = "TP"; System.out.println("Count of occurrences of a substring recursively are: "+subsrting_rec(str1, str2)); } static int subsrting_rec(String str, String sub){ if (str.contains(sub)){ return 1 + subsrting_rec(str.replaceFirst(sub, ""), sub); } return 0; } }
输出
如果我们运行上面的代码,它将生成以下输出 -
Count of occurrences of a substring recursively are: 4
以上是在Java中递归地计算子字符串出现的次数的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

C++函数的递归深度受到限制,超过该限制会导致栈溢出错误。限制值因系统和编译器而异,通常在1000到10000之间。解决方法包括:1.尾递归优化;2.尾调用;3.迭代实现。

通用矩阵乘法(GeneralMatrixMultiplication,GEMM)是许多应用程序和算法中至关重要的一部分,也是评估计算机硬件性能的重要指标之一。通过深入研究和优化GEMM的实现,可以帮助我们更好地理解高性能计算以及软硬件系统之间的关系。在计算机科学中,对GEMM进行有效的优化可以提高计算速度并节省资源,这对于提高计算机系统的整体性能至关重要。深入了解GEMM的工作原理和优化方法,有助于我们更好地利用现代计算硬件的潜力,并为各种复杂计算任务提供更高效的解决方案。通过对GEMM性能的优

WORD是一个强大的文字处理器,我们可以利用word进行各种文字的编辑,在Excel表格当中,我们已经熟练掌握了加减乘数的运算方法,那么如果需要在Word表格里,计算数值的加减乘数,该如何操作呢,难道只能用计算器计算吗?答案当然是否定的,WORD也同样可以完成。今天小编就来教大家如何在Word文档的表格当中,运用公式计算加减乘除等基本运算,一起来学习一下吧。那么,今天就让小编具体演示一下,WORD文档怎么计算加减乘除?第一步:打开一个WORD,单击工具栏【插入】下的【表格】,在下拉菜单当中插入一

是的,C++Lambda表达式可以通过使用std::function支持递归:使用std::function捕获Lambda表达式的引用。通过捕获的引用,Lambda表达式可以递归调用自身。

如何使用Python的count()函数计算列表中某个元素的数量,需要具体代码示例Python作为一种强大且易学的编程语言,提供了许多内置函数来处理不同的数据结构。其中之一就是count()函数,它可以用来计算列表中某个元素的数量。在本文中,我们将详细介绍如何使用count()函数,并提供具体的代码示例。count()函数是Python的内置函数,用于计算某

在C#中,有一个Math类库,其中包含许多数学函数。其中包括计算幂次方的函数Math.Pow,它可以帮助我们计算指定数的幂。Math.Pow函数的用法非常简单,只需要指定底数和指数就可以了。其语法如下:Math.Pow(base,exponent);其中base表示底数,exponent表示指数。该函数返回double类型的结果,即幂次方的计算结果。下面让

递归算法通过函数自调用解决结构化的问题,优点是简洁易懂,缺点是效率较低且可能发生堆栈溢出;非递归算法通过显式管理堆栈数据结构避免递归,优点是效率更高且避免堆栈溢出,缺点是代码可能更复杂。选择递归或非递归取决于问题和实现的具体限制。

递归函数是一种在字符串处理中反复调用自身来解决问题的技术。它需要一个终止条件以防止无限递归。递归在字符串反转和回文检查等操作中被广泛使用。
