正则问题
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d6d692e71b71deb04fa0ef1f0d4321db.png)
分析:
1. 首先明白 ‘|’ 为或的含义
2. 很显然的一道递归搜索题
3. 遇到'('开始一段递归
4. 遇到’x‘ 值++
5. 遇到’|‘ 保存临时长度,和’|‘的比较,选取最大的
6. 遇到')' 结算当前一段,结果累加到()上一步的temp中,代码14行
import java.util.Scanner;
public class Main007_正则问题 {
static Scanner in = new Scanner(System.in);
static String s = in.next();
static int index = 0 ;
public static void main(String[] args) {
System.out.println(f());
}
private static int f() {
int temp = 0,max = 0;
while (index < s.length()){
if(s.charAt(index)=='('){
index++;
temp += f();
}else if(s.charAt(index)=='x'){
index++;
temp ++;
}else if(s.charAt(index)=='|'){
index++;
max = Math.max(temp,max);
temp = 0;
}else if(s.charAt(index)==')'){
index++;
return Math.max(temp,max);
}
}
return Math.max(temp,max);
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0cc0264fa80e2060ee36e05e0c0c9f02.png)