牛客网、括号序列

题目描述

在这里插入图片描述

解法:

import java.util.*;


public class Solution {
    
    
    int i = 0;
    /**
     * 利用栈匹配即可
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
    
    
        // write code here
        if(s==null) return false;
        Stack<Character> stack = new Stack<>();
        while(i<s.length()){
    
    
            char c = s.charAt(i);
            i++;
            switch(c){
    
    
                case '[':
                case '{':
                case '(':
                    //入栈:
                    stack.push(c);
                    break;
                case ']':
                         if(stack.isEmpty()) return false;
                         if(stack.peek()=='['){
    
    //匹配了一个
                             stack.pop();//出栈
                         }else return false;
                         break;
                case '}':
                         if(stack.isEmpty()) return false;
                         if(stack.peek()=='{'){
    
    //匹配了一个
                             stack.pop();//出栈
                         }else return false;
                         break;
                 case ')':
                         if(stack.isEmpty()) return false;
                         if(stack.peek()=='('){
    
    //匹配了一个
                             stack.pop();//出栈
                         }else return false;
                         break;
                default:
                      

            }
        }
        if(!stack.isEmpty()) return false;
        return true;
       
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44861675/article/details/114851125