1. 程式人生 > >使用棧進行簡單的括號匹配

使用棧進行簡單的括號匹配

import java.util.*;
public class Kuohaopipei {
    public static void main(String args[]){
       Scanner in=new Scanner(System.in);
       while(in.hasNext()) {
           String str = in.nextLine();
           System.out.println(f(str));
       }
    }
    //利用棧判斷
    public static boolean f(String str){
        char ch[]=str.toCharArray();
        Stack<Character> stack=new Stack<Character>();
        for(int i=0;i<ch.length;i++){
            if(ch[i]=='[' || ch[i]=='(' || ch[i]=='{'){
                stack.push(ch[i]);
            }else{
                if(stack.size()==0)
                    return false;
                char temp1=stack.pop();
                if(ch[i]=='}' && temp1!='{')
                    return false;
                if(ch[i]==')' && temp1!='(')
                    return false;
                if(ch[i]==']' && temp1!='[')
                    return false;
            }
        }
        //注意最後棧中如果還有元素則為false
        if(stack.size()>0)
            return false;
        return true;
    }
}