您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

在Java中递归地计算子字符串出现的次数

2024/5/7 4:31:26发布23次查看
给定两个字符串 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中递归地计算子字符串出现的次数的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product