自然语言交流系统 phxnet团队 创新实训 个人博客 (三)

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

 

  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. }  
posted @ 2017-05-18 16:46  D_R_Y  阅读(191)  评论(0编辑  收藏  举报