gpt4 book ai didi

java - 递归计算字符串中的字符并将 "eu"视为单个字符

转载 作者:行者123 更新时间:2023-12-05 04:23:38 24 4
gpt4 key购买 nike

我是 Java 的新手,我正在尝试弄清楚如何计算给定字符串中的字符数并威胁两个字符 "eu" 的组合作为一个单个字符,并且仍然将所有其他字符计为一个字符。

我想使用递归来做到这一点。

考虑以下示例。

输入:

"geugeu"

期望的输出:

4   // g + eu + g + eu = 4

当前输出:

2

我已经尝试了很多,但似乎仍然无法弄清楚如何正确实现它。

我的代码:

public static int recursionCount(String str) {
if (str.length() == 1) {
return 0;
}
else {
String ch = str.substring(0, 2);
if (ch.equals("eu") {
return 1 + recursionCount(str.substring(1));
}
else {
return recursionCount(str.substring(1));
}
}
}

最佳答案

OP 想要计算字符串中的所有字符,但相邻字符“ae”、“oe”、“ue”和“eu”应被视为单个字符且只计算一次。

下面的代码是这样做的:

public static int recursionCount(String str) {
int n;
n = str.length();
if(n <= 1) {
return n; // return 1 if one character left or 0 if empty string.
}
else {
String ch = str.substring(0, 2);
if(ch.equals("ae") || ch.equals("oe") || ch.equals("ue") || ch.equals("eu")) {
// consider as one character and skip next character
return 1 + recursionCount(str.substring(2));
}
else {
// don't skip next character
return 1 + recursionCount(str.substring(1));
}
}
}

关于java - 递归计算字符串中的字符并将 "eu"视为单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73685057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com