LeetCode--20. 有效的括號

給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。bash

有效字符串需知足:ui

左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。spa

示例

輸入: "()"
輸出: true

輸入: "()[]{}"
輸出: true

輸入: "(]"
輸出: false

輸入: "([)]"
輸出: false

輸入: "{[]}"
輸出: true
複製代碼

Coding

public boolean isValid(String s) {
    if (s.isEmpty()){
        return true;
    }
    Stack<Character> stack = new Stack<>();
    char[] chars = s.toCharArray();
    for (int i = 0;i<chars.length;i++){
        if (chars[i] == '{'){
            stack.push('}');
        }else if (chars[i] == '['){
            stack.push(']');
        }else if (chars[i] == '('){
            stack.push(')');
        }else if (stack.isEmpty() || chars[i]!=stack.pop()){
            return false;
        }
    }
    return stack.isEmpty();
}
複製代碼

總結

  1. 分析題目很明顯是棧問題,因此如何利用好push和pop是一個技術突破口。
  2. 當for循環完,也就是stack該pop的已經pop,若是stack爲空,則證實括號一一對應,則返回true
相關文章
相關標籤/搜索