zoukankan      html  css  js  c++  java
  • 自然语言交流系统 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. }  
  • 相关阅读:
    BZOJ3575 [Hnoi2014]道路堵塞
    BZOJ4456/UOJ184 [Zjoi2016]旅行者
    BZOJ4455/UOJ185 [Zjoi2016]小星星
    BZOJ1036 [ZJOI2008]树的统计Count
    BZOJ2594 [Wc2006]水管局长数据加强版
    BZOJ3669/UOJ3 魔法森林(LCT)
    BZOJ1012:[JSOI2008]最大数
    洛谷【P1175】表达式的转换
    HDU4699:Editor
    BZOJ3039:玉蟾宫
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/6874193.html
Copyright © 2011-2022 走看看