Niuke.com、ブラケットシーケンス

タイトル説明

ここに画像の説明を挿入

解決:

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