首页 > 学院 > 开发设计 > 正文

括号匹配问题

2019-11-06 06:19:40
字体:
来源:转载
供稿:网友
import java.util.*;public class d1 {//括号配对问题public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);int n=sc.nextInt();  //输入行数String[] str=new String[n];  //初始化一个字符串数组,把每一行输入的各种括号先放进去for(int i=0;i<n;i++){String s=sc.next();str[i]=s;}for(int i=0;i<n;i++){String s=str[i];  //从第一个开始分别对每种括号检查是否匹配if(s.length()%2!=0){System.out.PRintln("No");}else{Stack<Character> st=new Stack<Character>();  //初始化一个堆栈for(int j=0;j<s.length();j++){//对每行的括号逐一检查出入栈if(st.isEmpty()){  //如果堆栈为空,截取第i个字符放入st.push(s.charAt(j));}else if(st.peek()=='['&&s.charAt(j)==']'||st.peek()=='('&&s.charAt(j)==')'){//如果此括号匹配成功把刚才入栈顶的括号出栈st.pop();}else{//否则继续入栈st.push(s.charAt(j));}}if(st.isEmpty()){System.out.println("Yes");}elseSystem.out.println("No");}}}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表