1. 程式人生 > >程式設計練習題:括號配對問題(Java)

程式設計練習題:括號配對問題(Java)

問題描述:問題描述 : 輸入一個字串 裡面只含有 [ , ] , ( , ) 四種括號 ; 現要求判斷這個字串 是否滿足括號匹配

如 ([])() 是匹配的 ([)]是不匹配的

public void check(String str) {

        Stack<Character> stack = new Stack<Character>();
        // 如果該String長度為奇數,不匹配
        if (str.length() % 2 == 1) {
            System.out.println("No"
); } else { stack = new Stack<Character>(); for (int i = 0; i < str.length(); i++) { if (stack.isEmpty()) { stack.push(str.charAt(i)); // 當前棧是空的 存入當前位置的字元 } else if ((stack.peek() == '[' && str.charAt(i) ==
']') || (stack.peek() == '(' && str.charAt(i) == ')')) { stack.pop(); // 滿足上面的條件 表示相鄰的兩個字元是一對匹配的括號 進行出棧操作 } else { stack.push(str.charAt(i)); } } if (stack.isEmpty()) { System.
out.println("Yes"); } else { System.out.println("No"); } } }