江苏建设工程标准网站,wordpress移动端加底部导航栏,大潮建设集团有限公司 网站,昆明制作企业网站描述#xff1a;正则问题
考虑一种简单的正则表达式#xff1a; 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是#xff1a; xxxxxx#xff0c;长度是6。
输入 一个由x()|组成…描述正则问题
考虑一种简单的正则表达式 只由 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否则按无效代码处理。
解析字符串处理当碰到“x”计数器a当碰到“|”比较两边哪个大因为统计一直是用a做的所以这里直接将a赋给ba置0当碰到“(”递归调用当碰到“)”返回max(a, b)即可。
import java.util.Scanner;public class Main {static String str;static int cnt 0;static int i -1;public static void main(String[] args) {Scanner in new Scanner(System.in);str in.next();cnt f();System.out.println(cnt);}private static int f() {// TODO Auto-generated method stubint a 0, b 0;while (i str.length() - 1) {i;if (str.charAt(i) x) {a;} else if (str.charAt(i) |) {b Math.max(a, b);a 0;} else if (str.charAt(i) () {a f();} else {return Math.max(a, b);}}return a;}
}