zoukankan      html  css  js  c++  java
  • 判断括号序列的合法性

    很多时候,人生如同一个梦,不断的老去,不断的逝去。

    http://acm.nyist.net/JudgeOnline/problem.php?pid=2

    数据结构中的经典题目,栈的使用那一章,如果是左括号入站,右括号呢,跟该右括号匹配的一定是栈顶元素,如果此时栈顶为空或元素不匹配,则失败

     1 import java.util.Scanner;
     2 import java.util.Stack;
     3 
     4 
     5 public class Main {
     6 
     7     public static void main(String[] args) {
     8         // TODO Auto-generated method stub
     9         Scanner scn=new Scanner(System.in);
    10         int len=scn.nextInt();
    11         while(len-->0)
    12         {
    13             
    14             System.out.println(pipei(scn.next()));
    15         }
    16         
    17 
    18     }
    19     public static String pipei(String s)
    20     {
    21         char c[]=s.toCharArray();
    22         Stack<Character> stack=new Stack<Character>();
    23         for(int i=0;i<s.length();i++)
    24         {
    25             if(c[i]=='('||c[i]=='[') 
    26             {
    27                 stack.push(c[i]);
    28             }
    29             else
    30             {
    31                 if(stack.isEmpty())
    32                 {
    33                     return "No";
    34                         
    35                 }
    36                 else
    37                 {
    38                     Character t=stack.peek();
    39                     if((t=='('&&c[i]==')')||(t=='['&&c[i]==']'))
    40                     {
    41                         stack.pop();
    42                     }
    43                     else return "No";
    44                     
    45                     
    46                     
    47                     
    48                 }
    49                 
    50                 
    51                 
    52                 
    53             }
    54             
    55             
    56             
    57         }
    58         
    59         if(stack.isEmpty()) return "Yes";
    60         else return "No";
    61         
    62         
    63         
    64     }
    65 
    66 }
  • 相关阅读:
    移动端hybrid开发复盘
    node/webpack 调试 loader 等技巧
    javascript(js)小数精度丢失的解决方案
    必经之路--买房之后需要走的流程--针对 组合贷款方式
    canvas 画半圆的两种方式
    svg path 画圆
    1.快速排序
    7.桥接设计模式
    6.适配器设计模式
    5.策略设计模式
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/3940148.html
Copyright © 2011-2022 走看看