有效的括號 【leetcode - 20 - 簡單】

    工作之後,果然和學校差距太多了。好久都沒有刷題了,爲了能不能繼續工作的原因也是操碎了心

    現在情況基本穩定了,可以繼續工作,也可以回去上課。算是最滿意的結果了吧。

    距離藍橋杯比賽還有20來天,每天下班的時候刷刷題吧,希望可以有所斬獲。

 

 

1、首先 "" 空字符串是返回true的

2、第一個符號必須是 (  {  [  其中的一個,這個稍微想一下就好了。

3、當你循環結束了,一定要判斷你的棧是否爲空。不爲空就是false

4、思路就是找到一對就去除一對

 

class Solution {
    public boolean isValid(String s) {
    	if(s == null || s.length() % 2 != 0)
    		return false;
    	char[] array = s.toCharArray();
    	Stack<Character> stack = new Stack<>();
    	for(int i = 0;i < s.length(); i++) {
    		if(array[i] == '(' || array[i] == '{' || array[i] == '[')
    			stack.push(array[i]);
    		else {
    			if(stack.isEmpty())
    				return false;
    			if(array[i] == ')') {
    				if(stack.pop() != '(')
    					return false;
    			} else if(array[i] == '}') {
    				if(stack.pop() != '{')
    					return false;
    			} else if(array[i] == ']' ) {
    				if(stack.pop() != '[')
    					return false;
    			}
    		}
    	}	
    	if(stack.isEmpty())
    		return true;
    	return false;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章