括号匹配方案 野性酷女 2022-06-08 08:38 42阅读 0赞 合法的括号匹配序列被定义为: 1、空串“”是合法的括号序列 2、如果“x”和“y”是合法的序列,那么“xy”也是合法的序列 3、如果“x”是合法的序列,那么“(x)”也是合法的序列 4、每个合法的括号序列都可以由上面的规则生成 东东现在有一个合法的括号序列s,一次移除操作分为两步: 1、移除序列s中第一个左括号 2、移除序列s中任意一个右括号。保证操作之后s还是一个合法的括号序列 东东现在想知道使用上述的移除操作有多少种方案可以把序列s变为空。如果两个方案中有一次移除操作中移除的是不同的右括号就认为是不同的方案 输入描述:输入包括一行,一个合法的括号序列s,序列长度length(2<=length<=20) 输出描述:输出一个整数,表示方案数 import java.util.\*; public class Main \{ private static int total = 0; /** * 判断括号序列是否合法 * @return */ public static Boolean volid(ArrayList<Character> list){ Stack<Character> s = new Stack<>(); for(int i = 0; i < list.size(); i++){ if(list.get(i) == '('){ s.push('('); }else{ if(s.isEmpty() || s.pop() != '(') return false; } } return s.isEmpty(); } public static void dfs(ArrayList<Character> list){ if(list.isEmpty()){ total++; return ; } ArrayList<Character> newList = null; Character lft = list.remove(0); for(int i = 0; i < list.size(); i++){ if(list.get(i) == ')'){ newList = (ArrayList)list.clone(); //删除右括号后判断该序列是否合法,如果合法递归,否则检查下一个右括号 newList.remove(i); if(volid(newList)){ dfs(newList); } } } } public static void main(String[] args){ Scanner in = new Scanner(System.in); ArrayList<Character> list = new ArrayList<>(); while(in.hasNext()){ list.clear(); String line = in.nextLine(); char[] s = line.toCharArray(); for(int i = 0; i < line.length(); i++){ list.add(s[i]); } total = 0; dfs(list); System.out.println(total); } } \}
相关 括号匹配 c语言数据结构栈-1931扩号匹配 描述 判断一组匹配的左右扩号序列中,每一个右扩号与之相匹配成对的左扩号是整个扩号序列的第几个扩号。输出所有判断结果。 输入 我就是我/ 2023年06月08日 09:24/ 0 赞/ 43 阅读
相关 括号匹配方案 合法的括号匹配序列被定义为: 1、空串“”是合法的括号序列 2、如果“x”和“y”是合法的序列,那么“xy”也是合法的序列 3、如果“x”是合法的序列,那么“(x) 野性酷女/ 2022年06月08日 08:38/ 0 赞/ 43 阅读
相关 括号匹配 <table style="width:1615px; margin-bottom:20px; background-color:transparent"> <tbody> 秒速五厘米/ 2022年06月02日 08:53/ 0 赞/ 342 阅读
相关 括号匹配 [题目 括号匹配][Link 1] 一般的括号匹配问题是这样的: 给出一个字符串,判断这个括号匹配是不是合法的括号匹配。如”((” 和 “())”都不是合法的括号匹配 我会带着你远行/ 2022年05月18日 00:55/ 0 赞/ 295 阅读
相关 括号匹配 栈的应用,括号匹配。 经典做法是,遇左括号压入,遇右括号判断,和栈顶配对就继续,不配对或者栈空就错了。最后判断是否为空。 代码有些麻烦。 我是遇左括号压对应的右括号,最后 你的名字/ 2022年05月06日 06:28/ 0 赞/ 352 阅读
相关 括号匹配 题目描述 假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“\[”和“\]”和花括号“\{”和“\}”,且这三种括号可按任意的次序嵌套使用(如:…\ ╰半橙微兮°/ 2022年03月30日 02:28/ 0 赞/ 409 阅读
相关 括号匹配 PTA 02:括号匹配 一、题目 给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,\[ \],\{ \} 冷不防/ 2022年02月27日 15:54/ 0 赞/ 448 阅读
相关 括号匹配 <table> <tbody> <tr> <td colspan="3"> <h2>括号匹配</h2> </td> </tr> <tr> 约定不等于承诺〃/ 2022年01月07日 04:37/ 0 赞/ 448 阅读
相关 括号匹配 include<stdio.h> include<stack> using namespace std; stack <int> s;//定义一 叁歲伎倆/ 2021年12月01日 17:44/ 0 赞/ 435 阅读
相关 括号匹配 括号配对问题 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入 第一行 怼烎@/ 2021年09月22日 07:20/ 0 赞/ 540 阅读
还没有评论,来说两句吧...