• 自然语言交流系统 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. }  
  • 相关阅读:
    如何在IDEA中查看Gradle项目的所有依赖关系
    YUYV&YV12&mtk6763
    MTK-shot mode
    Thread中,join()方法
    高通平台常用缩写
    Android.mk用法详解
    HAL层编写规范
    MMU
    Linux设备驱动中断机制
    阻塞和非阻塞I/O
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/6874193.html
Copyright © 2020-2023  润新知