题目描述
考虑一种简单的正则表达式:
只由 x ( ) | 组成的正则表达式。
小明想求出这个正则表达式能接受的最长字符串的长度。
例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是 6。
输入描述
一个由 x()| 组成的正则表达式。输入长度不超过 100,保证合法。
输出描述
这个正则表达式能接受的最长字符串的长度。
输入输出样例
示例
输入
((xx|xxx)x|(x|xx))xx文章来源:https://www.toymoban.com/news/detail-744527.html
输出
6文章来源地址https://www.toymoban.com/news/detail-744527.html
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
import java.util.Scanner;
public class Main {
static int index=-1;
static Scanner scan = new Scanner(System.in);
static String str=scan.next();
public static void main(String[] args) {
System.out.println(dfs());
}
public static int dfs(){
int max=Integer.MIN_VALUE;
int count=0;
while(index<str.length()-1){
index++;
if(str.charAt(index)=='('){
count+=dfs();
}
else if(str.charAt(index)=='x'){
count++;
}
else if(str.charAt(index)=='|'){
max=Math.max(max,count);
count=0;
}
else if(str.charAt(index)==')'){
break;
}
}
return Math.max(max,count);
}
}
到了这里,关于蓝桥杯官网练习题(正则问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!