蓝桥杯 - 正则问题

解题思路:

dfs

java 复制代码
import java.util.Scanner;

public class Main {
    static int pos = -1; // 充当charAt下标
    static String s;// 字符串型的静态变量

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        s = scanner.nextLine();
        System.out.println(dfs());
    }

    private static int dfs() {
        int current = 0;// 目前x的最大个数
        int max = 0;// 最终x的最大个数
        while (pos < s.length() - 1) {// 遍历整个正则表达式,这里length()-1是为了防止最后一次pos=s.length时导致s.charAt(pos)越界
            pos++;
            if (s.charAt(pos) == '(') { // 进入下一层
                current += dfs(); // 叠加长度,利用了回溯的方法
            } else if (s.charAt(pos) == 'x') {// 累计x的个数
                current++;
            } else if (s.charAt(pos) == '|') {// 取最大值
                max = Math.max(current, max);
                current = 0;// 但是目前的x最大值变为0
            } else { // 遇到) 跳出本轮循环
                break;
            }
        }
        return Math.max(max, current);// 输出最大的x个数
    }

}
相关推荐
间彧19 小时前
SimpleDateFormat既然不推荐使用,为什么java 8+中不删除此类
java
间彧19 小时前
DateTimeFormatter相比SimpleDateFormat在性能上有何差异?
java
间彧19 小时前
为什么说SimpleDateFormat是经典的线程不安全类
java
MacroZheng19 小时前
横空出世!MyBatis-Plus 同款 ES ORM 框架,用起来够优雅!
java·后端·elasticsearch
CoovallyAIHub20 小时前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
用户03321266636720 小时前
Java 查找并替换 Excel 中的数据:详细教程
java
间彧20 小时前
ThreadLocal实现原理与应用实践
java
若水不如远方20 小时前
Netty的四种零拷贝机制:深入原理与实战指南
java·netty
用户74936368484320 小时前
【开箱即用】一分钟使用java对接海外大模型gpt等对话模型,实现打字机效果
java
SimonKing21 小时前
一键开启!Spring Boot 的这些「魔法开关」@Enable*,你用对了吗?
java·后端·程序员