我是Java新手,我正在努力弄清楚如何计算给定字符串中的字符,并威胁将two characters "eu"的组合视为single character,同时仍将所有其他字符视为一个字符.

我想用递归来实现这一点.

请考虑下面的示例.

Input:

"geugeu"

Desired output:

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

Current output:

2

我已经try 了很多,但似乎仍然想不出如何正确地实现它.

My code:

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相关问答推荐

表格栏上的事件过滤器在PFA中不起作用

Java自定义ThreadPool—暂停任务提交并取消当前排队任务

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

Intellij显示项目语言级别最高为12,尽管有java版本17 SDK

Java List with all combinations of 8 booleans

Spring Data JPA慢慢地创建了太多非活动会话

格式中的特定回录键-值对

MimeMessage emlMessage=new MimeMessage(Session,emlInputStream);抛出InvocationTargetException

使SLF4J在Android中登录到Logcat,在测试中登录到控制台(Gradle依赖问题)

继续收到错误SQLJDBC EXCEPTION执行";org.springframework.dao.InvalidDataAccessResourceUsageException:&

JNI:将代码打包成自包含的二进制文件

如何在Java中为thunk创建映射器函数

Java创建带有扩展通配符的抽象处理器

如果List是一个抽象接口,那么Collectors.toList()如何处理流呢?

向Java进程发送`kill-11`会引发NullPointerException吗?

为什么使用lo索引来解决二进制搜索问题不同于使用hi索引?

SonarQube在合并升级到java17后对旧代码提出错误

如何在Java上为循环数组从synchronized迁移到ReentrantLock

将天数添加到ZonedDateTime不会更改时间

将在 Docker 中运行的 Spring Boot 连接到在 Docker 中运行的 PostgreSQL,无需 compose 文件?