博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自然语言交流系统 phxnet团队 创新实训 个人博客 (三)
阅读量:5073 次
发布时间:2019-06-12

本文共 910 字,大约阅读时间需要 3 分钟。

因为需要处理自然语言的括号切分问题,专门记录下。  

 

  1. import java.util.Scanner;  
  2. import java.util.Stack;  
  3.   
  4. /** 
  5.  * @author Owner 
  6.  *  
  7.  */  
  8. public class Main {  
  9.   
  10.     public static void main(String[] args) {  
  11.         Scanner sc = new Scanner(System.in);  
  12.           
  13.         int n= sc.nextInt();//3条测试数据数据  
  14.           
  15.         Stack<Character> stack = null;  
  16.           
  17.         while(n!=0){  
  18.               
  19.             //从控制台读入一个测试字符串[]() [(])  
  20.             String str = sc.next();  
  21.             //如果该输入字符串为奇数,说明不匹配  
  22.             if(str.length() % 2 == 1){  
  23.                 System.out.println("No");  
  24.             }else{  
  25.                 //说明字符是偶数  
  26.                 stack = new Stack<Character>();  
  27.                   
  28.                 //遍历第一条测试字符串[]() [(])  
  29.                 for(int i=0;i<str.length();i++){  
  30.                     if(stack.isEmpty()){  
  31.                         //如果栈是空的  
  32.                         stack.push(str.charAt(i));  
  33.                     }else if(stack.peek() == '[' && str.charAt(i) == ']' || stack.peek() == '(' && str.charAt(i) == ')'){  
  34.                         //说明此时栈中字符不是空的,并且符合,  
  35.                         stack.pop();  
  36.                     }else{  
  37.                           
  38.                         stack.push(str.charAt(i));  
  39.                     }  
  40.                 }  
  41.                   
  42.                 if(stack.isEmpty()){  
  43.                     //如果栈是空的,说明括号匹配  
  44.                     System.out.println("Yes");  
  45.                 }else{  
  46.                     //说明栈不为空,括号不匹配  
  47.                     System.out.println("No");  
  48.                 }  
  49.             }  
  50.               
  51.             n--;  
  52.         }  
  53.           
  54.     }  
  55. }  

转载于:https://www.cnblogs.com/qiaoyanlin/p/6874193.html

你可能感兴趣的文章
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>