標籤:size wrap write als class char idp bsp app
Description
Given a string containing just the characters ‘(‘, ‘)‘, ‘{‘, ‘}‘, ‘[‘ and ‘]‘, determine if the input string is valid.
Example
The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.
Challenge
O(n)的時間,n為括弧的個數
解題:括弧匹配問題,用棧來做較為簡單,代碼如下:
public class Solution { /** * @param s: A string * @return: whether the string is a valid parentheses */ public boolean isValidParentheses(String s) { // write your code here Stack<Character>stack = new Stack<Character>(); for(int i = 0; i < s.length(); i++){ if(s.charAt(i) == ‘(‘ || s.charAt(i) == ‘{‘ || s.charAt(i) == ‘[‘){ stack.push(s.charAt(i)); }else{ //pop前要先檢查棧是不是空的 if(!stack.isEmpty()){ switch(s.charAt(i)){ case ‘)‘: if(!stack.pop().equals(‘(‘)){ return false; } break; case ‘]‘: if(!stack.pop().equals(‘[‘)){ return false; } break; case ‘}‘: if(!stack.pop().equals(‘{‘)){ return false; } break; } }else{ return false; } } } if(stack.isEmpty()){ return true; }else{ return false; } }}
423. Valid Parentheses【LintCode java】