美文网首页
第八届蓝桥杯 正则问题 Java A组

第八届蓝桥杯 正则问题 Java A组

作者: elijahzheng | 来源:发表于2018-04-02 17:22 被阅读0次

描述:正则问题

考虑一种简单的正则表达式:
只由 x ( ) | 组成的正则表达式。
小明想求出这个正则表达式能接受的最长字符串的长度。

例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。

输入

一个由x()|组成的正则表达式。输入长度不超过100,保证合法。

输出

这个正则表达式能接受的最长字符串的长度。

例如,
输入:
((xx|xxx)x|(x|xx))xx

程序应该输出:
6

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。

思路

  1. 将输入都存入数组内 - nextLine.split("")
  2. 字符串判断相等 "".equals("")
  3. 回调深搜

代码

import java.util.Scanner;

public class Main {
    static int len = 0;
    static String[] arr;
    public static void main (String args[]) {
        Scanner sc = new Scanner(System.in);
        arr = sc.nextLine().split("");
        
        int re = dfs();
        System.out.println(re);
    }
    
    static int dfs() {
        int result = 0, num = 0;
        
        while(len < arr.length) {
            if (arr[len].equals("(")) {
                len ++;
                num = num + dfs();
            }
            else if (arr[len].equals("|")) {
                len ++;
                result = num > result ? num : result;
                num = 0;
            } 
            else if (arr[len].equals(")")) {
                len ++;
                break;
            } else {
                len ++;
                num ++;
            }
        }
        result = num > result ? num : result;
        return result;
    }
}

相关文章

  • [蓝桥杯]正则问题

    问题 1887: [蓝桥杯][2017年第八届真题]正则问题 题目描述 考虑一种简单的正则表达式:只由 x ( )...

  • 第八届蓝桥杯 正则问题 Java A组

    描述:正则问题 考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。小明想求出这个正则表达式能接受的...

  • k倍区间

    第八届蓝桥杯省赛Java B组第十题 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序...

  • 分巧克力

    第八届蓝桥杯省赛Java B组第九题儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一...

  • 第八届蓝桥杯 迷宫 Java A组

    标题:迷宫 X星球的一处迷宫游乐场建在某个小山坡上。它是由10x10相互连通的小房间组成的。 房间的地板上写着一个...

  • 包子凑数

    第八届蓝桥杯省赛Java B组第八题 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i...

  • 第八届蓝桥杯 字母组串 Java A组

    标题:字母组串 由 A,B,C 这3个字母就可以组成许多串。比如:"A","AB","ABC","ABA","AA...

  • 蓝桥杯_1正则表达式

    最近小生,在练习蓝桥杯的习题,故有同路者共勉! 故:Java正则表达式 1.字符 x 字符 x。例如a表示字...

  • 第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)

    第七届蓝桥杯JAVA B组真题解析-凑算式(第三题) 凑算式 A+B/C+DEF/GHI =10 (如果显示有问题...

  • 第八届蓝桥杯 9数算式 Java A组

    标题:9数算式 观察如下的算式: 9213 x 85674 = 789314562 左边的乘数和被乘数正好用到了1...

网友评论

      本文标题:第八届蓝桥杯 正则问题 Java A组

      本文链接:https://www.haomeiwen.com/subject/uuuxhftx.html